unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* switch-to-buffer slow on PGTK
@ 2024-02-01 11:24 Jonas Damm
  2024-02-01 14:21 ` Tassilo Horn
  0 siblings, 1 reply; 8+ messages in thread
From: Jonas Damm @ 2024-02-01 11:24 UTC (permalink / raw)
  To: help-gnu-emacs

Hi,
I am using emacs 30 (GNU Emacs 30.0.50 (build 5, x86_64-pc-linux-gnu,
GTK+ Version 3.24.38, cairo version 1.16.0) of 2024-02-01) on Debian
Sway (wayland) on a ryzen 3600G with 32G of fast memory.

switch-to-buffer gets slower and slower, the longer the
machine is running. After starting emacs fresh, its pretty quick. After
around one day of using, the function takes more then 3 seconds to show
the list of buffers and typing to match a buffer name still takes some
seconds to register.

The same issue happens on an older Notebook with emacs 29 (also sway).

Thanks for any help.
Jonas



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 11:24 switch-to-buffer slow on PGTK Jonas Damm
@ 2024-02-01 14:21 ` Tassilo Horn
  2024-02-01 16:48   ` Jonas Damm
  0 siblings, 1 reply; 8+ messages in thread
From: Tassilo Horn @ 2024-02-01 14:21 UTC (permalink / raw)
  To: Jonas Damm; +Cc: help-gnu-emacs

Jonas Damm <mailing@jonas-damm.de> writes:

Hi Jonas,

> I am using emacs 30 (GNU Emacs 30.0.50 (build 5, x86_64-pc-linux-gnu,
> GTK+ Version 3.24.38, cairo version 1.16.0) of 2024-02-01) on Debian
> Sway (wayland) on a ryzen 3600G with 32G of fast memory.
>
> switch-to-buffer gets slower and slower, the longer the
> machine is running.

How many open buffers do you have?

  M-: (length (buffer-list)) RET

will tell you.  If it's an unusal amount, you can eval

  (dolist (b (buffer-list))
    (message "%S" (buffer-name b))) <=== C-x C-e here!

in order to print all buffers' names to *Messages*.  My guess is you use
some package which creates buffers over buffers without cleaning up.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 14:21 ` Tassilo Horn
@ 2024-02-01 16:48   ` Jonas Damm
  2024-02-01 17:00     ` Tassilo Horn
  0 siblings, 1 reply; 8+ messages in thread
From: Jonas Damm @ 2024-02-01 16:48 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Jonas Damm, help-gnu-emacs

Currently i have 37 Buffers open. I think thats normal.
My uptime is only a few hours and switch-to-buffer takes already more
then a second.

Tassilo Horn <tsdh@gnu.org> writes:

> Jonas Damm <mailing@jonas-damm.de> writes:
>
> Hi Jonas,
>
>> I am using emacs 30 (GNU Emacs 30.0.50 (build 5, x86_64-pc-linux-gnu,
>> GTK+ Version 3.24.38, cairo version 1.16.0) of 2024-02-01) on Debian
>> Sway (wayland) on a ryzen 3600G with 32G of fast memory.
>>
>> switch-to-buffer gets slower and slower, the longer the
>> machine is running.
>
> How many open buffers do you have?
>
>   M-: (length (buffer-list)) RET
>
> will tell you.  If it's an unusal amount, you can eval
>
>   (dolist (b (buffer-list))
>     (message "%S" (buffer-name b))) <=== C-x C-e here!
>
> in order to print all buffers' names to *Messages*.  My guess is you use
> some package which creates buffers over buffers without cleaning up.
>
> Bye,
> Tassilo




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 16:48   ` Jonas Damm
@ 2024-02-01 17:00     ` Tassilo Horn
  2024-02-01 17:15       ` Jonas Damm
  0 siblings, 1 reply; 8+ messages in thread
From: Tassilo Horn @ 2024-02-01 17:00 UTC (permalink / raw)
  To: Jonas Damm; +Cc: Users list for the GNU Emacs text editor

Am Do, 1. Feb 2024, um 17:48, schrieb Jonas Damm:
> Currently i have 37 Buffers open. I think thats normal.

Alright, then it's something else.

Have a look at the Emacs profiler, e.g., the commands profiler-start and friends. There's surely also a section in the manual. That should show where the time is spent.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 17:00     ` Tassilo Horn
@ 2024-02-01 17:15       ` Jonas Damm
  2024-02-01 17:19         ` Tassilo Horn
  0 siblings, 1 reply; 8+ messages in thread
From: Jonas Damm @ 2024-02-01 17:15 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Jonas Damm, Users list for the GNU Emacs text editor

This is the output of the profiler:


     22,744,487  98% + command-execute
        453,256   1% + redisplay_internal (C function)
          7,279   0%   Automatic GC
            912   0% + timer-event-handler
             21   0% + help-command-error-confusable-suggestions
              0   0%   ...

How can i narrow it down further?
Thanks!
"Tassilo Horn" <tsdh@gnu.org> writes:

> Am Do, 1. Feb 2024, um 17:48, schrieb Jonas Damm:
>> Currently i have 37 Buffers open. I think thats normal.
>
> Alright, then it's something else.
>
> Have a look at the Emacs profiler, e.g., the commands profiler-start
> and friends. There's surely also a section in the manual. That should
> show where the time is spent.
>
> Bye,
> Tassilo




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 17:15       ` Jonas Damm
@ 2024-02-01 17:19         ` Tassilo Horn
  2024-02-01 19:51           ` Jonas Damm
  2024-02-03 13:27           ` Jonas Damm
  0 siblings, 2 replies; 8+ messages in thread
From: Tassilo Horn @ 2024-02-01 17:19 UTC (permalink / raw)
  To: Jonas Damm; +Cc: Users list for the GNU Emacs text editor

Am Do, 1. Feb 2024, um 18:15, schrieb Jonas Damm:
> This is the output of the profiler:
>
>      22,744,487  98% + command-execute
>         453,256   1% + redisplay_internal (C function)
>           7,279   0%   Automatic GC
>             912   0% + timer-event-handler
>              21   0% + help-command-error-confusable-suggestions
>               0   0%   ...
>
> How can i narrow it down further?

You can expand the tree below command-execute by clicking on the + sign. But note that the time (22secs) also contains the time Emacs waited for your input.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 17:19         ` Tassilo Horn
@ 2024-02-01 19:51           ` Jonas Damm
  2024-02-03 13:27           ` Jonas Damm
  1 sibling, 0 replies; 8+ messages in thread
From: Jonas Damm @ 2024-02-01 19:51 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Jonas Damm, Users list for the GNU Emacs text editor

Thanks, I think i narrowed it down to the function ivy-rich-switch-buffer-root-lookup

     12,751,393  97% - command-execute
     12,751,393  97%  - funcall-interactively
      9,030,352  68%   - ivy-switch-buffer
      9,030,352  68%    - ivy-read
      9,030,352  68%     - apply
      9,030,352  68%      - #<subr ivy-read>
      8,992,824  68%       - read-from-minibuffer
      8,824,107  67%        - ivy--queue-exhibit
      8,824,107  67%         - ivy--exhibit
      8,817,497  67%          - ivy--update-minibuffer
      8,816,473  67%           - ivy--format
      8,815,449  67%            - ivy-rich--ivy-switch-buffer-transformer
      8,815,449  67%             - ivy-rich-format
      8,814,401  67%              - #<compiled -0x98309b0fa9e758e>
      8,814,401  67%               - ivy-rich-format-column
      4,577,350  34%                - ivy-rich-switch-buffer-project
      4,577,350  34%                 - ivy-rich-switch-buffer-root
      4,576,302  34%                  + ivy-rich-switch-buffer-root-lookup
          1,048   0%                    ivy-rich--switch-buffer-directory
      4,201,388  32%                - ivy-rich-switch-buffer-path
      4,201,388  32%                 - ivy-rich--switch-buffer-root-and-filename
      4,201,388  32%                  - ivy-rich-switch-buffer-root
      4,201,388  32%                   - ivy-rich-switch-buffer-root-lookup
 
"Tassilo Horn" <tsdh@gnu.org> writes:

> Am Do, 1. Feb 2024, um 18:15, schrieb Jonas Damm:
>> This is the output of the profiler:
>>
>>      22,744,487  98% + command-execute
>>         453,256   1% + redisplay_internal (C function)
>>           7,279   0%   Automatic GC
>>             912   0% + timer-event-handler
>>              21   0% + help-command-error-confusable-suggestions
>>               0   0%   ...
>>
>> How can i narrow it down further?
>
> You can expand the tree below command-execute by clicking on the +
> sign. But note that the time (22secs) also contains the time Emacs
> waited for your input.
>
> Bye,
> Tassilo




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: switch-to-buffer slow on PGTK
  2024-02-01 17:19         ` Tassilo Horn
  2024-02-01 19:51           ` Jonas Damm
@ 2024-02-03 13:27           ` Jonas Damm
  1 sibling, 0 replies; 8+ messages in thread
From: Jonas Damm @ 2024-02-03 13:27 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Jonas Damm, Users list for the GNU Emacs text editor

I think i fixed it, by adding

(setq ivy-rich-project-root-cache-mode t)

to my config. So far everything seem snappy.
Thanks!
"Tassilo Horn" <tsdh@gnu.org> writes:

> Am Do, 1. Feb 2024, um 18:15, schrieb Jonas Damm:
>> This is the output of the profiler:
>>
>>      22,744,487  98% + command-execute
>>         453,256   1% + redisplay_internal (C function)
>>           7,279   0%   Automatic GC
>>             912   0% + timer-event-handler
>>              21   0% + help-command-error-confusable-suggestions
>>               0   0%   ...
>>
>> How can i narrow it down further?
>
> You can expand the tree below command-execute by clicking on the + sign. But note that the time (22secs) also contains the time Emacs waited for your input.
>
> Bye,
> Tassilo




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-02-03 13:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-01 11:24 switch-to-buffer slow on PGTK Jonas Damm
2024-02-01 14:21 ` Tassilo Horn
2024-02-01 16:48   ` Jonas Damm
2024-02-01 17:00     ` Tassilo Horn
2024-02-01 17:15       ` Jonas Damm
2024-02-01 17:19         ` Tassilo Horn
2024-02-01 19:51           ` Jonas Damm
2024-02-03 13:27           ` Jonas Damm

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).