Subject: Re: bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening large number of buffers

From: Dmitry Gutov <[email-masked]>
Date: Tue, 12 Dec 2023 21:10:13 +0200

On 12/12/2023 20:36, Eli Zaretskii wrote:
>> From: Ihor Radchenko<[email-masked]>
>> Cc:[email-masked],[email-masked],[email-masked]
>> Date: Tue, 12 Dec 2023 17:44:15 +0000
>>
>> Eli Zaretskii<[email-masked]>  writes:
>>
>>>>    #define BVAR(buf, field) (buffer_overrides->field ## _ == UNSET ?\
>>>>                                (buf)->field ## _ :\
>>>>                               buffer_overrides->field ## _)
>>>>
>>>>    and replace the loop with simply setting buffer_overrides slot.
>>> So for starters, we make each BVAR more expensive, i.e. make Emacs
>>> uniformly slower (because we call BVAR all over the place).
>> Yes, although I do not believe that it will have large impact in
>> practice. It is just an extra == comparison.
> We've seen how similar extra comparisons slow down Emacs when we
> introduced symbols-with-location.  IMO, BVAR might be even more
> expensive, since it is used much more frequently and widely.

We also have dynamic variable bindings all over the place, so it might 
be worth a try (with measurements).