我经常自定义Emacs.最近,我在我的.emacs配置中添加了一些内容,偶尔会将我的CPU固定在100%,但我真的不知道它是什么.
如果我多次按下Cg,最终我会在迷你缓冲区下方收到一条消息,询问我是否要自动保存我的文件,然后如果我想完全中止emacs.如果我一直拒绝并按下Cg,最终我可以恢复正常运行emacs.大约一个小时后它会再次发生.
我可以继续像我一样,评论我最近添加的各种内容,重新启动emacs,试图缩小罪魁祸首,但它进展缓慢.
有没有办法可以直接分析emacs来找出什么lisp函数占用CPU?
打开文件(通过键入Ctrl-x f,AKA Find File)或通过f在Dired模式下键入该文件),在具有.git子目录的工作目录中非常缓慢.
即使是最简单的文件(50行(主要是注释)也可能需要8秒才能打开.
同一个文件,在不受Git管理的不同目录中,立即打开.
为什么会发生这种情况?如何在不禁用vc-mode的情况下解决此问题?(因为我使用Emacs的主要原因之一是它M-x ediff-revision)
更新1:感谢@ sanityinc的回答,我运行了ELP Profiling,这是我收到的(对于一个非常小的文件,69行,其中59行是简单注释):
Function Name Call Count Elapsed Time Average Time
------------- ---------- ------------ ------------
vc-call-backend 11 23.023 2.093
vc-find-file-hook 1 8.757 8.757
vc-mode-line 1 7.812 7.812
vc-default-mode-line-string 1 7.345 7.345
vc-state-refresh 1 6.921 6.921
vc-state 1 6.921 6.921
vc-default-state-heuristic 1 6.921 6.921
vc-registered 1 0.945 0.945
vc-backend 1 0.945 0.945
vc-git-registered 1 0.912 …Run Code Online (Sandbox Code Playgroud)