From: Ihor Radchenko <yantar92@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: dmitry@gutov.dev, 66117@debbugs.gnu.org, monnier@iro.umontreal.ca
Subject: bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening large number of buffers
Date: Tue, 12 Dec 2023 17:44:15 +0000 [thread overview]
Message-ID: <87msufxqmo.fsf@localhost> (raw)
In-Reply-To: <83fs07tjre.fsf@gnu.org>
Eli Zaretskii <eliz@gnu.org> 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.
> ... And then
> I'm not sure I understand how buffer_overrides will get the values of
> those temporary bindings without having to use the same loops when we
> have let-binding within another one. Also, what about threads?
Just as any other global state variable - via `specbind'. Entering inner
let will push the previous value into specpdl and recover it upon
exiting.
Threads work similarly, maintaining their own local specpdl queue heads
that make sure that global state is recorded and rewinded as needed.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
next prev parent reply other threads:[~2023-12-12 17:44 UTC|newest]
Thread overview: 162+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-20 8:53 bug#66117: 30.0.50; `find-buffer-visiting' is slow when opening large number of buffers Ihor Radchenko
2023-09-22 1:36 ` Dmitry Gutov
2023-09-22 11:03 ` Ihor Radchenko
2023-09-22 12:11 ` Dmitry Gutov
2023-09-22 12:41 ` Ihor Radchenko
2023-09-22 12:59 ` Eli Zaretskii
2023-09-22 13:30 ` Ihor Radchenko
2023-09-22 14:57 ` Eli Zaretskii
2023-09-23 8:22 ` Ihor Radchenko
2023-09-23 8:57 ` Eli Zaretskii
2023-09-24 10:54 ` Ihor Radchenko
2023-09-24 12:50 ` Eli Zaretskii
2023-09-26 8:54 ` Ihor Radchenko
2023-09-26 14:18 ` Michael Albinus
2023-10-04 10:57 ` Ihor Radchenko
2023-09-26 11:11 ` Dmitry Gutov
2023-09-26 13:06 ` Ihor Radchenko
2023-09-27 23:30 ` Michael Heerdegen
2023-10-05 14:25 ` Ihor Radchenko
2023-09-29 7:30 ` Eli Zaretskii
2023-09-29 13:56 ` Ihor Radchenko
2023-09-29 16:12 ` Eli Zaretskii
2023-10-03 3:25 ` Michael Heerdegen
2023-10-03 6:00 ` Eli Zaretskii
2023-10-07 8:25 ` Ihor Radchenko
2023-10-07 8:48 ` Eli Zaretskii
2023-10-07 9:29 ` Ihor Radchenko
2023-10-07 10:57 ` Eli Zaretskii
2023-10-07 11:08 ` Ihor Radchenko
2023-10-07 11:24 ` Eli Zaretskii
2023-10-07 11:43 ` Ihor Radchenko
2023-10-07 12:05 ` Eli Zaretskii
2023-10-08 9:00 ` Ihor Radchenko
2023-10-08 9:56 ` Eli Zaretskii
2023-10-09 10:02 ` Ihor Radchenko
2023-10-09 10:16 ` Ihor Radchenko
2023-12-12 14:24 ` Ihor Radchenko
2023-12-12 14:49 ` Eli Zaretskii
2023-12-12 16:33 ` Ihor Radchenko
2023-12-12 17:26 ` Eli Zaretskii
2023-12-12 17:44 ` Ihor Radchenko [this message]
2023-12-12 18:36 ` Eli Zaretskii
2023-12-12 19:10 ` Dmitry Gutov
2023-12-12 19:16 ` Eli Zaretskii
2023-12-12 19:18 ` Ihor Radchenko
2023-12-12 19:20 ` Eli Zaretskii
2023-12-12 20:01 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-12 20:47 ` Dmitry Gutov
2023-12-12 22:57 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-12 23:40 ` Dmitry Gutov
2023-12-13 3:50 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-12 23:09 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-12 23:43 ` Ihor Radchenko
2023-12-12 23:47 ` Dmitry Gutov
2023-12-13 3:55 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-13 12:10 ` Eli Zaretskii
2023-12-13 13:06 ` Ihor Radchenko
2023-12-13 13:25 ` Eli Zaretskii
2023-12-13 13:43 ` Ihor Radchenko
2023-12-13 13:51 ` Eli Zaretskii
2023-12-13 14:12 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-13 14:58 ` Eli Zaretskii
2023-12-13 14:32 ` Ihor Radchenko
2023-12-13 15:22 ` Eli Zaretskii
2023-12-14 14:20 ` Ihor Radchenko
2023-12-14 16:40 ` Eli Zaretskii
2023-12-14 17:07 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 17:14 ` Eli Zaretskii
2023-12-14 18:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 18:30 ` Ihor Radchenko
2023-12-14 18:41 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 19:02 ` Ihor Radchenko
2023-12-14 19:36 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-15 11:01 ` Ihor Radchenko
2023-12-15 13:47 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-17 6:04 ` Eli Zaretskii
2023-12-17 6:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-17 8:30 ` Eli Zaretskii
2023-12-17 10:31 ` Ihor Radchenko
2023-12-17 10:36 ` Eli Zaretskii
2023-12-17 10:46 ` Eli Zaretskii
2023-12-17 10:56 ` Ihor Radchenko
2023-12-17 11:06 ` Eli Zaretskii
2023-12-17 11:19 ` Ihor Radchenko
2023-12-17 12:06 ` Eli Zaretskii
2023-12-19 13:24 ` Ihor Radchenko
2023-12-19 13:38 ` Eli Zaretskii
2023-12-20 20:33 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-21 5:56 ` Gerd Möllmann
2023-12-21 13:25 ` Ihor Radchenko
2023-12-21 13:39 ` Gerd Möllmann
2024-01-01 18:02 ` Ihor Radchenko
2024-01-01 19:39 ` Gerd Möllmann
2024-01-01 20:39 ` Ihor Radchenko
2024-01-02 4:43 ` Gerd Möllmann
2024-01-02 10:52 ` Ihor Radchenko
2024-01-02 11:08 ` Gerd Möllmann
2024-01-02 11:17 ` Ihor Radchenko
2024-01-02 11:48 ` Gerd Möllmann
2024-01-02 12:07 ` Ihor Radchenko
2024-01-02 12:07 ` Gerd Möllmann
2024-01-02 12:15 ` Ihor Radchenko
2024-01-02 12:57 ` Gerd Möllmann
2024-01-02 13:09 ` Ihor Radchenko
2024-01-02 13:28 ` Gerd Möllmann
2024-01-03 14:28 ` Gerd Möllmann
2024-01-02 1:30 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-02 11:00 ` Ihor Radchenko
2024-01-02 11:57 ` Gerd Möllmann
2024-01-02 12:11 ` Ihor Radchenko
2024-01-03 2:13 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-02 11:08 ` Ihor Radchenko
2024-01-02 14:08 ` Gerd Möllmann
2023-12-17 15:17 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-17 16:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-17 10:52 ` Ihor Radchenko
2023-12-17 11:01 ` Eli Zaretskii
2023-12-17 11:26 ` Ihor Radchenko
2023-12-17 12:14 ` Eli Zaretskii
2023-12-17 15:24 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 18:49 ` Eli Zaretskii
2023-12-14 19:49 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 20:24 ` Eli Zaretskii
2023-12-14 20:57 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 21:32 ` Dmitry Gutov
2023-12-14 23:03 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 19:15 ` Ihor Radchenko
2023-12-14 19:56 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-15 10:19 ` Ihor Radchenko
2023-10-08 11:16 ` Dmitry Gutov
2023-10-08 11:25 ` Ihor Radchenko
2023-10-08 11:44 ` Eli Zaretskii
2023-10-08 12:10 ` Ihor Radchenko
2023-10-08 12:28 ` Dmitry Gutov
2023-10-08 12:11 ` Dmitry Gutov
2023-10-08 12:20 ` Ihor Radchenko
2023-10-09 0:48 ` Dmitry Gutov
2023-12-23 8:54 ` Eli Zaretskii
2023-12-23 9:41 ` Ihor Radchenko
2023-12-23 11:16 ` Eli Zaretskii
2023-12-23 11:28 ` Ihor Radchenko
2023-12-23 11:51 ` Eli Zaretskii
2023-12-23 14:30 ` Ihor Radchenko
2023-12-30 7:39 ` Eli Zaretskii
2023-12-29 7:47 ` Eli Zaretskii
2023-12-29 13:55 ` Ihor Radchenko
2023-12-30 8:08 ` Eli Zaretskii
2023-12-30 9:50 ` Eli Zaretskii
2023-12-30 10:10 ` Eli Zaretskii
2023-12-30 10:39 ` Ihor Radchenko
2023-12-30 11:07 ` Eli Zaretskii
2023-12-30 12:51 ` Ihor Radchenko
2023-12-30 13:24 ` Eli Zaretskii
2024-01-01 17:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-09-22 13:02 ` Dmitry Gutov
2023-09-22 13:10 ` Eli Zaretskii
2023-09-22 13:38 ` Ihor Radchenko
2023-09-22 13:45 ` Dmitry Gutov
2023-10-04 10:58 ` Ihor Radchenko
2023-10-04 11:46 ` Dmitry Gutov
2023-10-05 11:27 ` Ihor Radchenko
2023-10-05 17:14 ` Dmitry Gutov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87msufxqmo.fsf@localhost \
--to=yantar92@posteo.net \
--cc=66117@debbugs.gnu.org \
--cc=dmitry@gutov.dev \
--cc=eliz@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).