tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tramp 2.1.18 extremely slow...


From: Michael Albinus
Subject: Re: Tramp 2.1.18 extremely slow...
Date: Thu, 15 Apr 2010 13:34:59 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.92 (gnu/linux)

Andrei Stebakov <address@hidden> writes:

> Hi Michael

Hi Andrei,

> Here is my trump debug output for slow connection (this time it takes 5 sec 
> to open a file, sometimes it’s longer)

There are many unnecessary calls on the remote side. First, Tramp reads
the file:

17:52:39 tramp-send-command (6) # test -d /home/my-name/LispWeb/test1.lisp 
2>/dev/null; echo tramp_exit_status $?
17:52:39 tramp-send-command (6) # test -e /home/my-name/LispWeb 2>/dev/null; 
echo tramp_exit_status $?
17:52:40 tramp-send-command (6) # \stat -c '(("%N") %h %u %g %X.0 %Y.0 %Z.0 
%s.0 "%A" t %i.0 -1)' /home/my-name/LispWeb 2>/dev/null; echo tramp_exit_status 
$?
17:52:40 tramp-send-command (6) # base64 < /home/my-name/LispWeb/test1.lisp 
2>/dev/null; echo tramp_exit_status $?

Then Tramp rereads the file's attributes:

17:52:40 tramp-send-command (6) # test -w /home/my-name/LispWeb/test1.lisp 
2>/dev/null; echo tramp_exit_status $?
17:52:40 tramp-send-command (6) # test -e /home/my-name/LispWeb/ 2>/dev/null; 
echo tramp_exit_status $?
17:52:41 tramp-send-command (6) # \stat -c '(("%N") %h %u %g %X.0 %Y.0 %Z.0 
%s.0 "%A" t %i.0 -1)' /home/my-name/LispWeb 2>/dev/null; echo tramp_exit_status 
$?
17:52:41 tramp-send-command (6) # test -d /home/my-name/LispWeb 2>/dev/null; 
echo tramp_exit_status $?

That shall be all. However, the next call is surprising. It shall happen
only, when the connection hasn't been used a while:

17:52:41 tramp-send-command (6) # echo are you awake
17:52:41 tramp-send-command (6) # test 0 2>/dev/null; echo tramp_exit_status $?
17:52:41 tramp-send-command (6) # test -e / 2>/dev/null; echo tramp_exit_status 
$?
17:52:41 tramp-send-command (6) # test -e /\ this\ file\ does\ not\ exist\  
2>/dev/null; echo tramp_exit_status $?

And now, the time consuming part begins. All different vc backends run
their tests:

17:52:41 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/RCS/test1.lisp\,v 2>/dev/null; echo tramp_exit_status $?
17:52:42 tramp-send-command (6) # test -e /home/my-name/LispWeb/test1.lisp\,v 
2>/dev/null; echo tramp_exit_status $?
17:52:42 tramp-send-command (6) # test -e /home/my-name/LispWeb/RCS/test1.lisp 
2>/dev/null; echo tramp_exit_status $?
17:52:42 tramp-send-command (6) # test -r /home/my-name/LispWeb/CVS/Entries 
2>/dev/null; echo tramp_exit_status $?
17:52:42 tramp-send-command (6) # test -r /home/my-name/LispWeb/.svn/entries 
2>/dev/null; echo tramp_exit_status $?
17:52:42 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/SCCS/s.test1.lisp 2>/dev/null; echo tramp_exit_status $?
17:52:42 tramp-send-command (6) # test -e /home/my-name/LispWeb/s.test1.lisp 
2>/dev/null; echo tramp_exit_status $?
17:52:43 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/test1.lisp/.bzr/checkout/format 2>/dev/null; echo 
tramp_exit_status $?
17:52:43 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/.bzr/checkout/format 2>/dev/null; echo tramp_exit_status 
$?
17:52:43 tramp-send-command (6) # test -e /home/my-name/.bzr/checkout/format 
2>/dev/null; echo tramp_exit_status $?
17:52:43 tramp-send-command (6) # test -e /home/.bzr/checkout/format 
2>/dev/null; echo tramp_exit_status $?
17:52:43 tramp-send-command (6) # test -e /.bzr/checkout/format 2>/dev/null; 
echo tramp_exit_status $?
17:52:43 tramp-send-command (6) # test -e /home/my-name/LispWeb/test1.lisp/.git 
2>/dev/null; echo tramp_exit_status $?
17:52:43 tramp-send-command (6) # test -e /home/my-name/LispWeb/.git 
2>/dev/null; echo tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /home/my-name/.git 2>/dev/null; echo 
tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /home/.git 2>/dev/null; echo 
tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /.git 2>/dev/null; echo 
tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /home/my-name/LispWeb/test1.lisp/.hg 
2>/dev/null; echo tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /home/my-name/LispWeb/.hg 
2>/dev/null; echo tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /home/my-name/.hg 2>/dev/null; echo 
tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /home/.hg 2>/dev/null; echo 
tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e /.hg 2>/dev/null; echo 
tramp_exit_status $?
17:52:44 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/test1.lisp/_MTN/format 2>/dev/null; echo 
tramp_exit_status $?
17:52:45 tramp-send-command (6) # test -e /home/my-name/LispWeb/_MTN/format 
2>/dev/null; echo tramp_exit_status $?
17:52:45 tramp-send-command (6) # test -e /home/my-name/_MTN/format 
2>/dev/null; echo tramp_exit_status $?
17:52:45 tramp-send-command (6) # test -e /home/_MTN/format 2>/dev/null; echo 
tramp_exit_status $?
17:52:45 tramp-send-command (6) # test -e /_MTN/format 2>/dev/null; echo 
tramp_exit_status $?
17:52:45 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/test1.lisp/\{arch\}/\=tagging-method 2>/dev/null; echo 
tramp_exit_status $?
17:52:46 tramp-send-command (6) # test -e 
/home/my-name/LispWeb/\{arch\}/\=tagging-method 2>/dev/null; echo 
tramp_exit_status $?
17:52:46 tramp-send-command (6) # test -e 
/home/my-name/\{arch\}/\=tagging-method 2>/dev/null; echo tramp_exit_status $?
17:52:46 tramp-send-command (6) # test -e /home/\{arch\}/\=tagging-method 
2>/dev/null; echo tramp_exit_status $?
17:52:46 tramp-send-command (6) # test -e /\{arch\}/\=tagging-method 
2>/dev/null; echo tramp_exit_status $?

In order to improve the performance, I recommend to disable vc for
remote files (given, you don't need it there):

(setq vc-ignore-dir-regexp
      (format "\\(%s\\)\\|\\(%s\\)"
              vc-ignore-dir-regexp
              tramp-file-name-regexp))

If this is not applicable, you shall disable at least not used vc backends.

And, of course, setting tramp-verbose back to 3 (the default) will speed
up Tramp as well.

> Thank you,
> Andrei

Best regards, Michael.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]