2009-10-12 7 views
6

Gibt es eine Möglichkeit, die Emacs-Tramp-Performance zu verbessern? Für mich ist es schneller, einen externen FTP-Client (filezilla) zu öffnen, Dateien auf die lokale Festplatte zu übertragen und sie in einem externen Editor (Notepad) zu öffnen, als sie mit Emacs zu öffnen. Ich verwende emacs23.1 unter Windows XP. Ich habe versucht, verschiedene tramp-default-Methode (Telnet, PSCP, FTP), alle von ihnen haben die gleiche Leistung.emacs tramp performance

Profilierungs Ergebnisse mit ELP-Instrument-Paket werden die folgende (I 3 geöffnet entfernte Dateien von 1,5 MB jeder)

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 

So eigentliche Dateiübertragung dauert 132 sec, etwa 1/3 der Gesamtzeit, . Warum verbringt es so viel Zeit im tramp-sh-file-name-handler? Ich habe versucht, eine Funktion tramph-sh-file-name-handler zu empfehlen, um zwischengespeicherte Ergebnisse zu speichern und zurückzugeben, aber es funktioniert nicht, wahrscheinlich hat diese Funktion einige Nebenwirkungen.

Irgendwelche Ideen zur Verbesserung der Tramp-Performance? (Ich benutze Emacs 23.1 unter WindowsXP)

+1

Elp Profiling Ergebnisse sind "inklusive"; Jede Funktion tramp-file-name-handler-Aufrufe erscheinen in seinen Timing-Daten. Im Grunde genommen verbringen Sie die Hälfte Ihrer Zeit damit, auf IO zu warten, und die andere Hälfte tut etwas. Ich beschäftige mich nur mit diesem Zeug auf Betriebssystemebene; sshfs für Linux, SFTPDrive für Windows usw. – jrockway

Antwort

0

Ich habe ein Problem mit ein paar Skripten behoben, die es mir erlauben, Dateien und Verzeichnisse zu lesen/zu stellen und zu spiegeln. Diese Skripte verwenden lftp (eine Version, die mit dem Cygwin installiert wird) und haben eine sehr gute Leistung.

Sie waren Forderungen, meine Lösung zu veröffentlichen. Leider habe ich nur einen Prototyp davon. Ich habe keine Zeit, es zu beenden. Es dient mir gut, aber es ist nicht in dem Staat, um veröffentlicht zu werden.

2

Ich habe festgestellt, dass Sicherung-ssh weit besser als Tramp-Modus ist, wenn Sie es so einrichten können.

+0

Danke für Ihre Antwort. Ich habe keine einfache Möglichkeit gefunden, die Sicherung unter Windows einzurichten. Es gibt ein japanisches Projekt Ducan, das etwas Ähnliches machen soll, aber ich konnte es nicht installieren. Weißt du, wie es unter Windows funktioniert? –

+0

Kein Windows-Benutzer, sorry. –

0

Wenn sich Ihr Anwendungsfall verbessert, verwenden Sie den Remote-Client! Ich habe aus der Ferne mit Emacs bearbeitet, das erinnert mich daran.

meine Erfahrung hat mich dazu gebracht, die Maschine Hosting Emacs zu glauben, würde den Engpass sein kann

jedoch ein besseres SSH-Client helfen ... versuchen, die Liste an OpenSSH.org (niedrig im linken Navigationsbereich) Ich mag PuTTY unter Windows, wo Auswahl = Kopieren & Rechtsklick = Einfügen.

nicht sicher über Möglichkeiten zur Verbesserung der Remote-Leistung, obwohl. Der Standard-Build von Emacs hat eine Menge Lisp, aber es braucht mehr Speicherplatz als RAM und war immer effizient für mich, mit Ausnahme großer Dateien & net/sys lag.

Wenn Ihr Fall Hervorhebungen und Auto-Features hat, die Sie nicht möchten, dann könnte die minimale Konfiguration helfen - sollte dies ohne Neuaufbau tun können.

Emacs ist so groß, ich bemerkte am meisten, wenn ich herausgefunden habe, dass es E-Mail senden/empfangen kann. Ich habe die Spitze des Eisbergs kaum erforscht.

in diesem Fall obwohl 'vi' vielleicht besser sein ... sogar mit mehr Emacs Erfahrung relativ habe ich kleine Portionen in jedem Lager verwendet. selten scripte ich oder suche ein neues Feature, das Graben ist schwierig, aber es gibt praktische Anleitungen für beide.

+0

Danke für Ihre Antwort. Ich muss eine Verbindung von meinem Client zu verschiedenen Remote-Computern herstellen, daher ist ein Remote-Client für mich keine Lösung. Ja, ich kann vi verwenden, aber ich habe viele Skripte für Emacs erstellt, die ich brauche. Und ich benutze Emacs als Dateimanager, nicht nur als Editor. –

Verwandte Themen