正如標題所示,當我在emacs中打開或保存文件時,它在hg repo中佔用的時間最多爲 3(請參閱底部的更新)秒打開文件。我在OS X上在固態硬盤和大量電源的Macbook視網膜上。打開一個非版本控制文件似乎是即時的。mercurial在打開/保存文件時會減慢emacs的死亡率
看着this question這與git是一樣的,我確定vc-call-backend
佔用了大部分時間。這裏有一個單一的查找文件的ELP簡介:
function call count total time avg time find-file 1 3.043015 3.043015 vc-call-backend 12 2.222802 0.1852335000 vc-find-file-hook 1 1.117738 1.117738 vc-hg-state 2 0.8375429999 0.4187714999 vc-mode-line 1 0.691795 0.691795 vc-default-mode-line-string 1 0.691761 0.691761 vc-backend 1 0.42589 0.42589 vc-registered 1 0.425868 0.425868 vc-hg-registered 1 0.424229 0.424229 vc-state 1 0.413661 0.413661 vc-state-refresh 1 0.413652 0.413652 vc-default-state-heuristic 1 0.413626 0.413626 vc-working-revision 1 0.278064 0.278064 vc-hg-working-revision 1 0.27795 0.27795 ... (I cut everything below this line, all ran very quickly)
在這個倉庫,在命令行中運行hg status
花費近4秒(這是大的),所以我的理論是,Emacs是查詢狀態,以便它可以顯示一些東西。
所以我的真正的問題是如何使這個痛苦少,不完全禁用vc-mode
。我用ediff-revision
vc-annotate
和vc-log-dir
不斷和不希望禁用這些功能,但我不認爲任何這些應該需要find-file
鉤。我不在乎我是否看不到狀態欄線指示狀態。谷歌搜索給了我幾個很好的建議。我不想一直手動啓用和禁用vc-mode
,我希望儘可能自動。
謝謝!
更新:事實證明,大部分的問題是我使用的是mercurial extension,它是窯的一部分(kbfiles,see this)。事情仍然緩慢,但不那麼痛苦。我使用新號碼更新了上述elp配置文件
看到我上面的更新,事實證明,擴展正在放慢速度。我禁用了它,但事情似乎仍然緩慢,我要確保我在最新的emacs上,然後報告錯誤,謝謝! – stokastic