ELSEIF
Your brief EB
522 stories from 174 feeds 1056 clusters Refreshed 12 minutes ago next pull 19:10

OBSERVABILITY Signal 622 2 feeds carried it

Lowering Consult async debounce, throttle, and refresh delays speeds up Emacs search feedback

Illustration only Photo by iSawRed on Unsplash

Adjusting Consult's async input debounce, throttle, and refresh delay variables reduces latency of search results in Emacs at the cost of higher CPU usage.

WHY IT MATTERS

Faster feedback lets developers locate files and code snippets with less noticeable delay, improving interactive workflow. However, the more aggressive settings increase the frequency of asynchronous processes and UI redraws, which can raise power consumption and CPU load, especially on battery-powered laptops or when indexing very large projects.

Written by elseif from the cluster below · every claim links back to a source

The three things worth knowing

01

Consult's default debounce, throttle, and refresh delays are set conservatively to limit unnecessary background searches.

02

Reducing consult-async-input-debounce to 0.05 s, consult-async-input-throttle to 0.1 s, and consult-async-refresh-delay to 0.05 s cuts the wait before each search and UI update.

03

These lower values improve perceived responsiveness but increase CPU and GPU activity, making them less suitable for laptops or large codebases.

THE READ

What the cluster adds up to.

ORIGINAL ANALYSIS

The Consult package provides asynchronous search commands that do not launch a new process on every keystroke. Instead it uses configurable debounce and throttle delays to decide when to start a search, and a separate refresh delay to control how often results are pushed to the completion UI. The default values are conservative, which creates a noticeable pause before the list updates. Users who find this lag distracting can lower the three variables to make the feedback loop faster.

The consult-async-input-debounce variable forces Consult to wait a set period after the last keystroke before spawning an external search. The consult-async-input-throttle variable imposes a hard limit on how often a new search may be started, regardless of typing speed. The consult-async-refresh-delay variable determines how frequently the completion UI is updated with fresh results. Setting each of these to 0.05 s or 0.1 s reduces the waiting time before a search begins and shortens the interval between UI refreshes.

These changes do not make the underlying tools such as ripgrep or fd run any faster; they remain limited by their own algorithms and hardware. What changes is the Emacs side: background processes are launched more often and the screen is redrawn more frequently. More frequent process creation and redisplay increase CPU cycles and can raise garbage-collection activity. On a laptop this extra activity can draw more power and shorten battery life, while on a slower machine it may add noticeable overhead.

Therefore the aggressive settings are best suited to fast desktop computers that are plugged into a power source. On laptops, or when searching very large projects, the conservative defaults may provide a better balance by avoiding unnecessary work. The optimal values depend on factors such as typing speed, project size, the performance of the external search tool, and power constraints. Choosing lower delays is an explicit trade-off: reduced input latency exchanged for higher CPU and energy consumption.

Written by elseif from the cluster below · checked for specifics the sources never contained

THE CLUSTER

Same story, 2 feeds.

ORDERED BY FIRST SEEN
jamescherti.com via Lobsters Why Emacs Consult async searches feel slow and how to speed them up Open ↗
jamescherti.com via Hacker News Why Emacs Consult async searches feel slow and how to speed them up Open ↗