emacs是否具有流程查看器(资源管理器)或等效工具?


14

有时emacs会达到100%的CPU使用率。显然,发生这种情况时,流程失控就会出现问题。

只是想知道是否有一种方法可以查看emacs中所有正在运行的进程?

类似于unix htop,交互式系统过程监视器和查看器... htop


3
list-processes
npostavs

@npostavs谢谢。列表过程很好。但我想知道是否有某些东西可以提供有关资源的更多信息,包括内存和cpu的使用
Orion

2
我唯一能想到的就是配置文件: gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
法律列表

3
律师名单是正确的。我认为您根本没有在寻找流程查看器(制作list-processesproced无关)。您关心的唯一进程是(单个)emacs进程本身,并且您正试图找出为什么它占用了如此多的CPU时间和/或内存。为此,您需要使用emacs分析器。
菲利普斯

Answers:


11

在2016年提出了这个问题。现在在2019年,存在M-x proced

用于显示系统进程并向其发送信号的模式。

Proced使Emacs缓冲区包含当前系统进程的列表。您可以使用常规的Emacs命令在此缓冲区中移动,而可以使用特殊的Proced命令在列出的进程上进行操作。请参阅proced-mode以获取入门。


请注意,您可能希望通过自动缓冲区更新(默认情况下每5秒一次)M-x proced-toggle-auto-updateproced缓冲区上启用类似top行为。
皮埃尔·塔拉米

9

除了其他答案外,原始张贴者还不妨考虑使用内置的概要分析功能:https : //www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html

要开始分析,请键入M-x profiler-start。您可以选择按处理器使用情况和/或内存使用情况进行分析。完成某些工作后,键入M-x profiler-report以显示您选择要分析的每个资源的摘要缓冲区。报告缓冲区的名称包括生成报告的时间,因此您以后可以生成另一个报告而不会擦除以前的结果。完成分析后,键入M-x profiler-stop(与分析相关的开销很小)。

有关此功能的更多详细信息,请参见手册上方的链接。


7

您可能要检查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中看到此功能。)对于您的问题,我找不到更好的现成候选人。


6

退房舵顶。它列出了您想要的所有内容,并具有将信号发送到流程的操作。


5

我喜欢htop,所以我也在emacs中使用它。但是,交互式部分无法以这种方式工作。

(defun htop ()
  (interactive)
  (if (get-buffer "*htop*")
      (switch-to-buffer "*htop*")
    (ansi-term "/bin/bash" "htop")   
    (comint-send-string "*htop*" "htop\n")))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.