2009-10-12 5 views
6

Existe-t-il un moyen d'améliorer les performances d'emacs tramp? Pour moi, il est plus rapide d'ouvrir un client ftp externe (filezilla), de transférer des fichiers sur le disque local et de les ouvrir dans un éditeur externe (notepad) plutôt que de les ouvrir avec emacs. J'utilise emacs23.1 sous Windows XP. J'ai essayé différentes méthodes tramp-default (telnet, pscp, ftp), toutes ont la même performance.emacs tramp performance

résultats de profilage avec ELP--ensemble d'instruments sont les suivantes (I ouverts 3 fichiers distants de 1,5 Mo chacun)

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 

Ainsi, le transfert de fichier réel prend 132 secondes, environ un tiers du temps total . Pourquoi passe-t-il autant de temps dans tramp-sh-file-name-handler? J'ai essayé de conseiller une fonction tramp-sh-file-name-handler pour stocker et retourner les résultats en cache, mais cela ne fonctionne pas, probablement cette fonction a des effets secondaires.

Des idées pour améliorer les performances des clochards? (J'utilise emacs 23.1 sous WindowsXP)

+1

les résultats de profilage elp sont "inclusifs"; tout appel de la fonction tramp-file-name-handler apparaît dans ses données de temporisation. Fondamentalement, vous passez la moitié de votre temps à attendre des IO, et une autre moitié à faire quelque chose. Je traite juste ce genre de choses au niveau du système d'exploitation; sshfs pour linux, SFTPDrive pour Windows, etc. – jrockway

Répondre

0

J'ai résolu un problème avec un couple de scripts qui m'ont permis de créer/mettre en miroir des fichiers ou des répertoires. Ces scripts utilisent lftp (une version installée avec cygwin) et ont de très bonnes performances.

Ils étaient demandes de publier ma solution. Malheureusement, j'en ai seulement un prototype. Je n'ai pas le temps de le finir. Ça me sert bien mais ce n'est pas dans l'état d'être publié.

2

J'ai trouvé que fuse-ssh est bien meilleur que le mode tramp, si vous pouvez le configurer de cette façon.

+0

Merci pour votre réponse. Je n'ai pas trouvé un moyen facile d'installer le fusible sur les fenêtres. Il y a un projet japonais Ducan, qui est censé faire quelque chose de similaire mais je n'ai pas pu l'installer. Savez-vous comment le faire fonctionner sous Windows? –

+0

Pas un utilisateur Windows, désolé. –

0

Si votre cas d'utilisation s'améliore, utilisez le client distant! J'ai recouru à l'édition à distance avec emacs, cela me rappelle.

mon expérience m'a conduit à croire que la machine hébergeant emacs serait le goulot d'étranglement

cependant un meilleur client SSH peut aider ... essayer la liste à OpenSSH.org (faible dans la navigation de gauche) J'aime PuTTY sous Windows, où selection = copier & clique-droit = ​​coller.

pas sûr de façons d'améliorer les performances à distance, cependant. la construction par défaut d'emacs a beaucoup de lisp mais elle prend plus de disque que d'espace RAM, et a toujours été efficace pour moi excepté les gros fichiers & net/sys lag. Si votre cas a des surlignages et des fonctions automatiques que vous ne voulez pas, alors une configuration minimale pourrait aider - devrait pouvoir le faire sans reconstruction.

emacs est si vaste, j'ai remarqué le plus quand j'ai découvert qu'il peut envoyer/recevoir des e-mails. J'ai à peine exploré la pointe de l'iceberg.

dans ce cas, mais «vi» peut être mieux ... même avec plus d'expérience emacs relativement j'ai utilisé de petites portions dans chaque camp. il est rare que j'écrive un script ou que je cherche une nouvelle fonctionnalité, le creusement est difficile mais il y a des guides de commandes pratiques pour les deux.

+0

Merci pour votre réponse. J'ai besoin de connecter mon client à différentes machines distantes, donc un client distant n'est pas une solution pour moi. Oui, je peux utiliser vi mais j'ai créé beaucoup de scripts pour emacs dont j'ai besoin. Et j'utilise emacs comme gestionnaire de fichiers, pas seulement comme éditeur. –