unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Ergus via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: 49264@debbugs.gnu.org
Subject: bug#49264: 28.0.50; project.el+tramp performance issue
Date: Tue, 17 Aug 2021 02:45:51 +0200	[thread overview]
Message-ID: <20210817004551.25qheo6v2gfys3ie@Ergus> (raw)
In-Reply-To: <73afb142-38f4-9e0e-ee46-14ff70db5b72@yandex.ru>

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.





  reply	other threads:[~2021-08-17  0:45 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87fsx13aiz.fsf.ref@aol.com>
2021-06-28 22:11 ` bug#49264: 28.0.50; project.el+tramp performance issue Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-29 12:05   ` Eli Zaretskii
2021-06-29 22:21     ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-30 12:46       ` Eli Zaretskii
2021-06-30 13:25         ` Phil Sainty
2021-06-30 13:35           ` Eli Zaretskii
2021-06-30 15:10         ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-29 13:00   ` Dmitry Gutov
2021-06-30  0:01     ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-07-26 16:56   ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-07-26 23:04     ` Dmitry Gutov
2021-08-09  0:59       ` Dmitry Gutov
2021-08-17  0:45         ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2021-08-19  1:19           ` Dmitry Gutov
2021-08-19  3:08             ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-08-21  2:23               ` Dmitry Gutov
2021-08-21  5:43                 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-08-21 10:59                   ` 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=20210817004551.25qheo6v2gfys3ie@Ergus \
    --to=bug-gnu-emacs@gnu.org \
    --cc=49264@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=spacibba@aol.com \
    /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).