GNU bug report logs - #49264
28.0.50; project.el+tramp performance issue

Previous Next

Package: emacs;

Reported by: Ergus <spacibba <at> aol.com>

Date: Mon, 28 Jun 2021 22:12:02 UTC

Severity: normal

Found in version 28.0.50

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


Message #41 received at 49264 <at> debbugs.gnu.org (full text, mbox):

From: Ergus <spacibba <at> aol.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 49264 <at> debbugs.gnu.org
Subject: Re: bug#49264: 28.0.50; project.el+tramp performance issue
Date: Tue, 17 Aug 2021 02:45:51 +0200
On Mon, Aug 09, 2021 at 03:59:55AM +0300, Dmitry Gutov wrote:
>Hi again,
>
>On 27.07.2021 02:04, Dmitry Gutov wrote:
>
>Sorry for the long wait, this feature ties into another old 
>discussion, and I wasn't sure how to proceed best.
>
>Anyway, here's a patch to try (attached). It should recover 
>performance lost back in 4ca13d98c9e while retaining flexibility (and 
>even adding more).
>
>There are still less than optimal places there (e.g. 
>file-in-directory-p is not very fast), and the modules list is read 
>from the disk every time, so some further optimization should be 
>possible.
>
>But first please try this version.

Thanks Dmitry:

This patch reduced the C-x p b time to just a few (~5) seconds when I
have like 20 remote buffers.

At the moment I haven't have time to stress it a bit more, but it
improves the situation significantly compared to the previous situation.

In my opinion this is a good improvement and may be installed on master,
but probably it is not enough.

I made a manual fast profiling and I see that most of the time in
project-buffers actually goes to tramp-sh-file-name-handler.

         207  42%         - project-buffers
         207  42%          - apply
         207  42%           - #<compiled -0x1f5d919efefc0a09>
         200  40%            - file-in-directory-p
         200  40%             - tramp-file-name-handler
         197  40%              - apply
         197  40%               - tramp-sh-file-name-handler
         197  40%                - tramp-handle-file-in-directory-p
         183  37%                 - tramp-run-real-handler
         183  37%                  - file-in-directory-p
         124  25%                   - file-equal-p
         124  25%                    - tramp-file-name-handler
         121  24%                     - apply
         121  24%                      - tramp-sh-file-name-handler
         121  24%                       - tramp-handle-file-equal-p
          85  17%                        - tramp-run-real-handler
          85  17%                         - file-equal-p
          52  10%                          - file-truename
          52  10%                           - tramp-file-name-handler
          41   8%                            - apply
          41   8%                             - tramp-sh-file-name-handler
          41   8%                              - tramp-sh-handle-file-truename
          28   5%                               + file-remote-p
          10   2%                               + file-local-name
           3   0%                               + file-name-as-directory

It goes specifically to file-in-directory-p as you said. So maybe the
improvement there may be also desirable if the difference after the
optimization can reduce the time for file-in-directory-p (or the caller)
at least to the half.

So, very thanks again.

Ergus.




This bug report was last modified 3 years and 303 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.