有时emacs会达到100%的CPU使用率。显然,发生这种情况时,流程失控就会出现问题。
只是想知道是否有一种方法可以查看emacs中所有正在运行的进程?
类似于unix htop,交互式系统过程监视器和查看器... htop
list-processes
或proced
无关)。您关心的唯一进程是(单个)emacs进程本身,并且您正试图找出为什么它占用了如此多的CPU时间和/或内存。为此,您需要使用emacs分析器。
有时emacs会达到100%的CPU使用率。显然,发生这种情况时,流程失控就会出现问题。
只是想知道是否有一种方法可以查看emacs中所有正在运行的进程?
类似于unix htop,交互式系统过程监视器和查看器... htop
list-processes
或proced
无关)。您关心的唯一进程是(单个)emacs进程本身,并且您正试图找出为什么它占用了如此多的CPU时间和/或内存。为此,您需要使用emacs分析器。
Answers:
除了其他答案外,原始张贴者还不妨考虑使用内置的概要分析功能:https : //www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
要开始分析,请键入M-x profiler-start
。您可以选择按处理器使用情况和/或内存使用情况进行分析。完成某些工作后,键入M-x profiler-report
以显示您选择要分析的每个资源的摘要缓冲区。报告缓冲区的名称包括生成报告的时间,因此您以后可以生成另一个报告而不会擦除以前的结果。完成分析后,键入M-x profiler-stop
(与分析相关的开销很小)。
有关此功能的更多详细信息,请参见手册上方的链接。
您可能要检查list-processes
:
list-processes
是“”中的交互式已编译Lisp函数simple.el
。
(list-processes &optional QUERY-ONLY BUFFER)
显示属于Emacs子进程的所有进程的列表。如果可选参数
QUERY-ONLY
为非nil,则仅query-on-exit
列出设置了标志的进程。
列出后,实际上将消除列出为退出或发出信号的任何进程。
可选参数BUFFER
指定要使用的缓冲区,而不是“*Process List*
”。返回值始终为nil
。此功能仅列出由Emacs启动的进程。要查看系统上正在运行的其他进程,请使用'
list-system-processes
'。
似乎错过了许多您需要的功能,但是用一点点编码就可以达到预期的效果(如果这样做,请向上游发送补丁,我偶尔希望在Emacs中看到此功能。)对于您的问题,我找不到更好的现成候选人。
list-processes
?