2009-10-12 7 views
6

¿Hay alguna manera de mejorar el rendimiento de vagabundos de emacs? Para mí es más rápido abrir un cliente ftp externo (filezilla), transferir archivos al disco local y abrirlos en un editor externo (bloc de notas) que abrirlos con emacs. Uso emacs23.1 en Windows XP. Probé con diferente método predeterminado de tramp (telnet, pscp, ftp), todos ellos tienen el mismo rendimiento.rendimiento de vagabundos de emacs

Profiling resultados con ELP-instrumento-paquete son los siguientes (i abrieron 3 archivos remotos de 1,5 MB cada una)

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 

Por lo tanto, la transferencia de archivos se realiza efectivamente 132 seg, aproximadamente 1/3 del tiempo total . ¿Por qué pasa tanto tiempo en tramp-sh-file-name-handler? Intenté aconsejar una función tramp-sh-file-name-handler para almacenar y devolver los resultados en caché, pero no funciona, probablemente esta función tenga algunos efectos secundarios.

¿Alguna idea de cómo mejorar el rendimiento de vagabundo? (Yo uso emacs 23.1 en Windows XP)

+1

los resultados del perfil elp son "inclusivos"; cualquier función de las llamadas tramp-file-name-handler aparece en sus datos de tiempo. Básicamente, usted está pasando la mitad de su tiempo esperando IO, y la otra mitad haciendo algo. Solo trato con esto en el nivel del sistema operativo; sshfs para Linux, SFTPDrive para Windows, etc. – jrockway

Respuesta

0

Resolví un problema con un par de scripts que me permitieron poner/poner y reflejar archivos o directorios. Estas secuencias de comandos usan lftp (una versión que se instala con cygwin) y tienen un muy buen rendimiento.

Exigieron publicar mi solución. Desafortunadamente, solo tengo un prototipo de eso. No tengo tiempo para terminarlo. Me sirve bien, pero no está en el estado para ser publicado.

2

He encontrado que fuse-ssh es mucho mejor que el modo vagabundo, si puede configurarlo de esa manera.

+0

Gracias por su respuesta. No encontré una manera fácil de configurar el fusible en Windows. Hay un proyecto japonés Ducan, que se supone que debe hacer algo similar, pero no pude instalarlo. ¿Sabes cómo hacer que funcione en Windows? –

+0

No es un usuario de Windows, lo siento. –

0

si su caso de uso mejora, ¡use el cliente remoto! He recurrido a la edición de forma remota con emacs, esto me recuerda.

mi experiencia me ha llevado a creer que la máquina que alberga emacs sería el cuello de botella

sin embargo, un cliente SSH mejor puede ayudar a tratar ... la lista en OpenSSH.org (bajo en el panel de navegación izquierdo) me gusta la masilla en Windows, donde selection = copy & clic con el botón derecho = pegar.

No estoy seguro de las formas de mejorar el rendimiento remoto, sin embargo. la compilación predeterminada de emacs tiene un montón de ceceo, pero se necesita más disco que espacio de RAM, y siempre ha sido eficiente para mí, salvo los archivos grandes & net/sys lag.

si su carcasa tiene resaltado y características automáticas que no desea, entonces la configuración mínima podría ayudar, debería poder hacer eso sin reconstruir.

emacs es tan vasto, me di cuenta más cuando descubrí que puede enviar/recibir correo electrónico. Apenas he explorado la punta del iceberg.

en este caso, aunque 'vi' puede ser mejor ... incluso con más experiencia en emacs, relativamente he usado porciones pequeñas en cada campo. raramente escribo o busco una nueva característica, la excavación es difícil, pero hay guías de comando útiles para ambos.

+0

Gracias por su respuesta. Necesito conectarme desde mi cliente a diferentes máquinas remotas, por lo que un cliente remoto no es una solución para mí. Sí, puedo usar vi, pero creé muchos scripts para emacs que necesito. Y uso emacs como administrador de archivos, no solo como editor. –