Subject: bug#48581: 27.2; Default value of lazy-highlight-buffer-max-at-a-time is too low

From: Augusto Stoffel <[email-masked]>
Date: Sat, 22 May 2021 11:25:44 +0200

The value of lazy-highlight-buffer-max-at-a-time determines how long
it takes to finish computing the isearch lazy count.  The current
default value of 20 seems suboptimal.

I made a simple experiment measuring the (real) time to count the
~15000 matches of the string "e" in the file isearch.el, with the
following results:

lazy-highlight-buffer-max-at-a-time | time to finish counting
20 (current setting)                | 1.5 s
50                                  | 0.8 s
100                                 | 0.6 s
200                                 | 0.5 s
nil (do it all at once)             | 0.4 s

Based on this, I would like to suggest changing the default to 200, or
something in that order of magnitude.

The downside of this change would be an increase in the time Emacs is
unresponsive doing lazy counting/highlighting.  However, this time
remains below a few milliseconds in a typical case, and on the other
hand a sufficiently complex regexp on a sufficiently large buffer can
hang isearch even with the current default settings.