2009-10-12 238 views
6

有沒有提高emacs流浪性能的方法?對我來說,打開外部ftp客戶端(filezilla)更快,將文件傳輸到本地磁盤並在外部編輯器(記事本)中打開它們,而不是使用emacs打開它們。 我在windows xp下使用emacs23.1。 我嘗試了不同的tramp-default-method(telnet,pscp,ftp),它們都具有相同的性能。emacs流浪漢性能

與ELP-儀器包剖析結果如下(I打開的1.5 MB 3個遠程文件各一個)

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來存儲和返回緩存的結果,但它不起作用,可能這個函數有一些副作用。

任何想法如何提高流浪漢性能? (我在WindowsXP下使用emacs 23.1)

+1

elp分析結果爲「包含」;任何函數tramp-file-name-handler調用都顯示在其時序數據中。基本上,你花了一半的時間等待IO,另一半花費了一些時間。 我只是在操作系統級別上處理這個東西;適用於Linux的sshfs,適用於Windows的SFTPDrive等。 – jrockway 2009-10-12 06:59:47

回答

0

我通過幾個腳本解決了一個問題,它允許我mget/put和鏡像文件或目錄。這些腳本使用lftp(與cygwin一起安裝的版本)並且具有非常好的性能。

他們被要求發佈我的解決方案。不幸的是,我只有一個原型。我沒有時間去完成它。它爲我提供了很好的服務,但它不在國家出版。

2

我發現fuse-ssh遠比tramp模式好,如果你可以這樣設置的話。

+0

感謝您的回答。我沒有找到在窗戶上設置保險絲的簡單方法。有一個日本項目Ducan,應該做類似的事情,但我無法安裝它。你知道如何使它在Windows下工作嗎? – 2009-11-16 07:35:11

+0

不是Windows用戶,很抱歉。 – 2009-11-17 04:39:08

0

如果你的用例改進了,使用遠程客戶端!這讓我想起了我用emacs遠程編輯。

我的經驗讓我相信機器託管的emacs會是瓶頸

然而更好的SSH客戶端可以幫助...嘗試在OpenSSH.org列表(在低左側導航欄)我喜歡膩子在Windows上,其中選擇=複製&右鍵單擊=粘貼。儘管如此,不確定如何改善遠程性能。 emacs的默認版本有很多lisp,但是它比RAM空間需要更多的磁盤空間,並且除了大文件以外,對我來說一直很高效& net/sys lag。

如果您的案例突出顯示並且您不想要的自動功能,那麼最低限度配置可能會有所幫助 - 應該能夠在不重建的情況下執行此操作。

emacs是如此之大,我發現它最能發送/接收電子郵件。我幾乎沒有探索過冰山一角。

在這種情況下,儘管「vi」可能會更好......即使有更多的emacs體驗,相對而言,我在每個陣營中都使用了小部分。我很少會編寫腳本或尋找新功能,挖掘工作非常艱難,但有兩個方便的命令指導。

+0

感謝您的回答。我需要從我的客戶端連接到不同的遠程機器,所以遠程客戶端不是我的解決方案。是的,我可以使用vi,但我爲我需要的emacs創建了很多腳本。我使用emacs作爲文件管理器,而不僅僅是作爲編輯器。 – 2009-11-24 07:13:17