all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: 59935@debbugs.gnu.org, juri@linkov.net
Subject: bug#59935: 29.0.60; project-list-buffers is slow
Date: Sat, 10 Dec 2022 10:11:15 +0200	[thread overview]
Message-ID: <83o7sby8yk.fsf@gnu.org> (raw)
In-Reply-To: <bc161422-b799-e3e4-2e72-6b50e0140d18@yandex.ru> (message from Dmitry Gutov on Sat, 10 Dec 2022 03:49:47 +0200)

> Cc: juri@linkov.net
> Date: Sat, 10 Dec 2022 03:49:47 +0200
> From: Dmitry Gutov <dgutov@yandex.ru>
> 
> When you invoke 'C-x p C-b', there's a noticeable pause before the
> buffer list is displayed. It's ~400ms over here when there are 46
> non-hidden buffers in the running session.
> 
> What I think is happening, the predicate is called 46, which in turn 
> calls (project-buffers pr) 46 times, and that ends up being 46 times 
> slower than one might have anticipated.
> 
> Not sure what's the best fix here (especially in time for the release),
> but if the FILTER-PREDICATE arg to list-buffers-noselect turned into a
> factory function (e.g. FILTER-PREDICATE-MAKER), that would be one
> solution.
> 
> Another would be to only leave the legacy codepath: it's not affected,
> project-buffers is only called once there.
> 
> Curiously, though, it shows a different list of buffers. It also
> includes "hidden" buffers - diff-syntax, Echo Area, etc. We should look
> into that either way.

I'm not following.  Are you saying that the problem is that the
FILTER-PREDICATE argument to list-buffers-noselect calls
project-buffers for each buffer?  If so, I don't understand why a
trivial change to project-list-buffers could not call project-buffers
just once, and then reuse the value in the call to
list-buffers-noselect both as the BUFFER-LIST argument and (if needed)
in the FILTER-PREDICATE argument, using memq.

If this is not the problem, then what is?

> And the patch is this:

Consequently, I don't understand the rationale for this patch, nor for
the combined one you posted later.  Please elaborate.

P.S. Btw, if you are not sure the multiple calls to project-buffers is
the reason for the slow operation, how about profiling it to be sure?
We may be barking up the wrong tree.





  parent reply	other threads:[~2022-12-10  8:11 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-10  1:49 bug#59935: 29.0.60; project-list-buffers is slow Dmitry Gutov
2022-12-10  2:03 ` Dmitry Gutov
2022-12-10  8:11 ` Eli Zaretskii [this message]
2022-12-10 10:47   ` Dmitry Gutov
2022-12-10 11:12     ` Eli Zaretskii
2022-12-10 11:37       ` Dmitry Gutov
2022-12-10 14:33         ` Eli Zaretskii
2022-12-10 19:19           ` Dmitry Gutov
2022-12-10 19:42             ` Eli Zaretskii
2022-12-10 19:53               ` Dmitry Gutov
2022-12-10 20:11                 ` Eli Zaretskii
2022-12-10 20:23                   ` Dmitry Gutov
2022-12-11  6:19                     ` Eli Zaretskii
2022-12-11 10:23                       ` Dmitry Gutov
2022-12-11 10:54                         ` Eli Zaretskii
2022-12-11 16:32                           ` Dmitry Gutov
2022-12-12 10:36                   ` Jean Louis
2022-12-12 17:12                     ` Juri Linkov
2022-12-13  3:10                       ` Jean Louis
2022-12-12 19:58                     ` Dmitry Gutov
2022-12-13  3:10                       ` Jean Louis
2022-12-13 15:29                         ` Dmitry Gutov
2022-12-13 19:30                           ` Jean Louis
2022-12-13 20:31                             ` Dmitry Gutov
2022-12-15 14:58                               ` Jean Louis
2022-12-15 15:12                                 ` Dmitry Gutov
2022-12-10 17:45 ` Juri Linkov
2022-12-10 19:22   ` Dmitry Gutov
2022-12-11 17:07     ` Juri Linkov
2022-12-11 17:49       ` Eli Zaretskii
2022-12-11 17:56         ` Juri Linkov
2022-12-11 18:08           ` Eli Zaretskii
2022-12-11 18:13             ` Dmitry Gutov
2022-12-11 18:12         ` Dmitry Gutov
2022-12-11 18:17           ` Eli Zaretskii
2022-12-11 18:35             ` Dmitry Gutov
2022-12-11 19:00               ` Eli Zaretskii
2022-12-11 19:41                 ` Dmitry Gutov
2022-12-11 20:42                   ` Eli Zaretskii
2022-12-12 17:16                     ` Juri Linkov
2022-12-12 17:27                       ` Eli Zaretskii
2022-12-12 17:51                         ` Juri Linkov
2022-12-12 18:10                           ` Eli Zaretskii
2022-12-12 18:14                             ` Juri Linkov
2022-12-12 18:22                               ` Eli Zaretskii
2022-12-13 17:49                                 ` Juri Linkov
2022-12-11 18:37       ` Dmitry Gutov
2022-12-13 17:49         ` Juri Linkov
2022-12-13 18:51           ` 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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83o7sby8yk.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=59935@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=juri@linkov.net \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.