Slow TRAMP mode in Emacs

5

2

How can I make Emacs TRAMP mode faster?

I have ControlMaster auto in my SSH config, and it is working:

$ time ssh -v debel echo foo
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/jmdeldin/.ssh/config
debug1: Applying options for *
debug1: Applying options for debel
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 9
foo
debug1: mux_client_request_session: master session id: 9

real    0m0.014s
user    0m0.008s
sys     0m0.003s

But TRAMP is painfully slow (~3 s file saves), as can be seen in this screencast. M-x shell works fine, but saving is the real slow down. This isn't the best TRAMP can do, right?

Details

  • GNU Emacs 24.1.1 (2012-06-01 build)
  • I am running a vanilla Emacs instance (I eval'd a color theme in the video, but that's it).
  • The VM is running on my machine.
  • I am connecting with TRAMP via /rsync:user@host:file, but I have tried ssh, scp, and even rsh, and all of them are laggy.

jmdeldin

Posted 2012-06-03T18:06:09.510

Reputation: 178

Are you on a Mac? IIUC there are some problems with subprocess on Emacs for OS X. This makes flyspell very painful for example. – Ivan Andrus – 2012-06-06T20:22:38.547

@IvanAndrus Yep, and flyspell is indeed painful. Do you know if there are any ways to speed this up? Emacs 22.1.1 (default OS X) is actually pretty fast at TRAMP, but 23.4 and 24.1 are really slow. – jmdeldin – 2012-06-07T17:55:49.153

Answers

2

The subprocess handling is rumored to be problematic especially on OS X. Unfortunately, it seems to not be known what exactly the problem is. There are several open bugs relating to it. One suggests changing a timeout helps, and another that setting process-connection-type to nil helps. Please read them for details about where and how these are supposed to be applied in order to help.

You can also try the "Mac Port" which IIRC is supposed to have better process handling, and in general be very nice.

Ivan Andrus

Posted 2012-06-03T18:06:09.510

Reputation: 696

Thank you! That port is much, much faster for TRAMP and flyspell. I compiled it with Homebrew, and it works out of the box. – jmdeldin – 2012-06-15T00:40:00.317