2009-10-12 12 views
6

Czy istnieje sposób na poprawę wydajności trampa emacs? U mnie szybciej jest otworzyć zewnętrznego klienta ftp (filezilla), przenieść pliki na dysk lokalny i otworzyć je w zewnętrznym edytorze (notatniku), niż otworzyć emacsem. Używam emacs23.1 pod Windows XP. Próbowałem innej metody domyślnej tramp (telnet, pscp, ftp), wszystkie mają taką samą wydajność.wydajność emacsa tramp

Profilowanie wyniki z ELP-Instrument-pakietu są następujące (I otworzyła 3 zdalnych plików z 1,5 MB każdy)

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 

więc rzeczywisty transfer plików trwa 132 s, około 1/3 całkowitego czasu . Dlaczego spędza tak dużo czasu w programie obsługi tramp-sh-file-name-handler? Próbowałem doradzić funkcję tramp-sh-file-name-handler do przechowywania i zwracania wyników z pamięci podręcznej, ale to nie działa, prawdopodobnie ta funkcja ma pewne skutki uboczne.

Jakieś pomysły na poprawę wydajności trampów? (Używam emacs 23.1 pod WindowsXP)

+1

Wyniki profilowania elp są "inclusive"; jakakolwiek funkcja tramp-file-name-handler calls pojawia się w danych czasowych. Zasadniczo spędzasz połowę czasu, czekając na IO, a druga połowa robi coś. Po prostu radzę sobie z tymi rzeczami na poziomie systemu operacyjnego; sshfs dla Linux, SFTPDrive dla Windows, itp. – jrockway

Odpowiedz

0

Rozwiązałem problem za pomocą kilku skryptów, które pozwalają mi na mget/put i mirrorowanie plików lub katalogów. Te skrypty używają lftp (wersji, która jest instalowana z cygwinem) i mają bardzo dobrą wydajność.

Wymagały one opublikowania mojego rozwiązania. Niestety, mam tylko jego prototyp. Nie mam czasu, aby to skończyć. Służy mi dobrze, ale nie jest opublikowany w tym stanie.

2

Znalazłem, że bezpiecznik-ssh jest znacznie lepszy niż tryb dławiący, jeśli możesz ustawić to w ten sposób.

+0

Dzięki za odpowiedź. Nie znalazłem łatwego sposobu ustawienia bezpiecznika w oknach. Jest japoński projekt Ducan, który powinien zrobić coś podobnego, ale nie byłem w stanie go zainstalować. Czy wiesz, jak sprawić, by działało pod Windows? –

+0

Nie użytkownik systemu Windows, przepraszam. –

0

jeśli twój przypadek użycia się poprawi, użyj zdalnego klienta! Zdecydowałem się na edycję zdalnie z emacs, to przypomina mi.

moje doświadczenia doprowadziły mnie do przekonania maszynę gospodarzem emacsowi będzie wąskim gardłem

jednak lepszy klient SSH może pomóc ... spróbować listy na OpenSSH.org (niski w lewym NAV) lubię PuTTY w systemie Windows, gdzie wybór = kopiowanie & kliknij prawym przyciskiem myszy = wklej.

Nie wiem jednak, jak poprawić wydajność zdalną. domyślna kompilacja emacsa ma dużo seplenienia, ale zajmuje więcej miejsca na dysku niż w pamięci RAM i zawsze była dla mnie wydajna, z wyjątkiem dużych plików & opóźnienie sieciowe/sys.

jeśli Twoja sprawa ma podświetlanie i automatyczne funkcje, których nie chcesz, wtedy konfiguracja minimalnie może pomóc - powinna być w stanie to zrobić bez przebudowy.

emacs jest tak rozległy, zauważyłem większość, gdy dowiedziałem się, że może wysyłać/odbierać wiadomości e-mail. Ledwo odkryłem wierzchołek góry lodowej.

w tym przypadku chociaż "vi" może być lepsze ... nawet przy większym doświadczeniu emacsa użyłem małych porcji w każdym obozie. rzadko piszę lub szukam nowej funkcji, kopanie jest trudne, ale są przydatne podręczniki dla obu.

+0

Dzięki za odpowiedź. Muszę połączyć się z mojego klienta na różnych komputerach zdalnych, więc zdalny klient nie jest rozwiązaniem dla mnie. Tak, mogę używać vi, ale stworzyłem wiele skryptów dla potrzebnych emacs. Używam emacsa jako menedżera plików, nie tylko jako redaktora. –