My Emacs(Windows 10 64位下的GNU Emacs 25.1.1(x86_64-w64-mingw32))变得非常缓慢且不连贯,尤其是在Org模式下,例如可以暂停2秒以上移动光标,3秒以上刷新以显示扩展树。
基于我的基准测试初始化报告,我通过修改.emacs中的内容来减少需求和加载语句,将它们更改为自动加载挂钩或在eval之后加载,从而缩小了规模。
我还完成了一些探查器报告,一些结果看起来很难解释(例如'line-move-visual'使用大量内存),我不知道这些进程中包含了哪些包以下以及如何调整和进行更改以提高性能。下面是profiler-report(mem + cpu)的部分扩展输出,在处理大约1500行的.org文件时,提前感谢!
(work.org at ~1500 lines)
- command-execute 259,247,035 98%
- call-interactively 259,247,035 98%
- funcall-interactively 259,142,758 98%
- previous-line 203,846,889 77%
- line-move 203,846,889 77%
- line-move-visual 92,655,384 35%
- posn-at-point 3,520 0%
file-remote-p 3,520 0%
window-inside-pixel-edges 12,844 0%
- org-cycle 46,120,698 17%
- org-cycle-internal-local 45,429,666 17%
- run-hook-with-args 45,176,010 17%
- org-optimize-window-after-visibility-change 41,890,667 15%
- org-subtree-end-visible-p 41,862,858 15%
- pos-visible-in-window-p 2,111,314 0%
- jit-lock-function 153,338 0%
- jit-lock-fontify-now 150,304 0%
- jit-lock--run-functions 135,144 0%
- run-hook-wrapped 135,144 0%
+ #<compiled 0x2c09399> 135,144 0%
#<compiled 0x2cf3709> 15,160 0%
file-remote-p 18,898 0%
+ eval 1,056 0%
org-end-of-subtree 1,056 0%
+ recenter 21,840 0%
+ org-cycle-hide-archived-subtrees 47,260 0%
org-cycle-show-empty-lines 9,232 0%
+ org-cycle-hide-drawers 2,936 0%
+ org-show-children 12,456 0%
outline-next-heading 5,120 0%
+ org-show-entry 1,776 0%
+ outline-flag-region 1,520 0%
+ org-hide-block-toggle-maybe 114,356 0%
+ run-hook-with-args-until-success 11,744 0%
+ org-cycle-item-indentation 6,198 0%
+ org-cycle-level 5,648 0%
org-at-table-p 5,312 0%
+ execute-extended-command 8,947,699 3%
+ next-line 227,472 0%
+ byte-code 104,277 0%
+ redisplay_internal (C function) 4,519,393 1%
+ elscreen-run-screen-update-hook 17,698 0%
internal-timer-start-idle 8,137 0%
+ timer-event-handler 2,000 0%
+ eldoc-schedule-timer 1,056 0%
... 0 0%
答案 0 :(得分:8)
我发现这个包可能是我的Emacs中Org-mode减速的主要原因。
这是包裹&#39; org-bullets&#39;尚未更新2年以上。
删除其要求&#39;语句和我的.emacs文件中的所有后续相关设置,我的Emacs中的组织模式正在恢复到可用响应状态。
答案 1 :(得分:5)
我不知道这是否与您的问题有关,但我在Windows上也有一个非常慢的orgmode,特别是在制定议程时。
我发现以下行解决了这个问题,当我将它添加到我的大型orgmode文件中时:
#+STARTUP: showeverything
答案 2 :(得分:1)
有什么帮助我将undo-limit
更改为50.默认值为80000(在Mac上酿造)。除非您确实需要任何大量的默认值,否则您应该相应地更改它。对我来说50就足够了。
(setq undo-limit 50)
修改强> 正如@Phil所指出的,这个变量与历史缓冲区中保留的字节数有关。对于大多数情况,它应该更大,不要腐败&#34;撤消&#34;特征。如果这是一个问题,请尝试哪种值最适合您。