[Top][All Lists]
[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.