производительность Emacs Tramp - PullRequest
6 голосов
/ 12 октября 2009

Есть ли способ улучшить производительность emacs tramp? Для меня быстрее открыть внешний ftp-клиент (filezilla), перенести файлы на локальный диск и открыть их во внешнем редакторе (блокнот), чем открывать их с помощью emacs. Я использую emacs23.1 под Windows XP. Я пробовал другой метод tramp-default-method (telnet, pscp, ftp), все они имеют одинаковую производительность.

Результаты профилирования с помощью пакета elp-instrument-package следующие (я открыл 3 удаленных файла по 1,5 МБ каждый)

tramp-file-name-handler                                1461        350.41599999  0.2398466803
tramp-sh-file-name-handler                             1461        350.02699999  0.2395804243
tramp-send-command                                     227         179.63400000  0.7913392070
tramp-send-command-and-check                           205         177.77600000  0.8672000000
tramp-wait-for-regexp                                  227         176.47800000  0.7774361233
tramp-wait-for-output                                  226         176.40000000  0.7805309734
tramp-barf-unless-okay                                 18          133.46699999  7.4148333333
tramp-handle-insert-file-contents                      3           132.046       44.015333333
tramp-handle-file-local-copy                           3           131.281       43.760333333
tramp-accept-process-output                            2375        112.95100000  0.0475583157

Итак, фактическая передача файла занимает 132 секунды, что составляет около 1/3 от общего времени. Почему он тратит так много времени на tramp-sh-file-name-handler? Я пытался посоветовать функции tramp-sh-file-name-handler хранить и возвращать кэшированные результаты, но это не работает, возможно, эта функция имеет некоторые побочные эффекты.

Есть идеи, как улучшить производительность бродяги? (Я использую emacs 23.1 под WindowsXP)

Ответы [ 3 ]

2 голосов
/ 16 ноября 2009

Я обнаружил, что fuse-ssh намного лучше, чем режим tramp, если вы можете настроить его таким образом.

0 голосов
/ 26 ноября 2009

Я решил проблему с помощью пары скриптов, которые позволяют мне mget / put и зеркалировать файлы или каталоги. Эти скрипты используют lftp (версия, которая устанавливается вместе с cygwin) и имеют очень хорошую производительность.

Это были требования опубликовать мое решение. К сожалению, у меня есть только его прототип. У меня нет времени, чтобы закончить это. Служит мне хорошо, но не в состоянии быть опубликованным.

0 голосов
/ 24 ноября 2009

Если ваш вариант использования улучшится, используйте удаленный клиент! Я прибегал к удаленному редактированию с помощью emacs, это напоминает мне.

Мой опыт привел меня к мысли, что узким местом будет машина, на которой размещен emacs

однако лучший SSH-клиент может помочь ... попробуйте список на OpenSSH.org (внизу слева навигация) Мне нравится PuTTY в Windows, где selection = copy & right-click = paste.

не уверен, что можно улучшить производительность удаленного доступа. стандартная сборка emacs имеет много шуток, но она занимает больше диска, чем места в ОЗУ, и всегда была эффективна для меня, за исключением больших файлов и net / sys lag.

если в вашем деле есть подсветка и авто-функции, которые вам не нужны, тогда минимальная настройка может помочь - должна быть возможность сделать это без перестройки.

emacs настолько обширен, что я заметил больше всего, когда узнал, что он может отправлять / получать электронную почту. Я едва исследовал верхушку айсберга.

в этом случае, хотя 'vi' может быть лучше ... даже с большим опытом работы с emacs относительно, я использовал маленькие порции в каждом лагере. редко я пишу сценарий или ищу новую функцию, копать сложно, но есть удобные руководства для обеих команд.

...