5 个版本 (3 个重大更新)
0.5.2 | 2022年9月3日 |
---|---|
0.4.0 | 2020年6月23日 |
0.3.1 | 2020年6月5日 |
0.3.0 | 2020年6月2日 |
0.2.0 | 2020年5月27日 |
#1062 in 命令行工具
155KB
1.5K SLoC
进程监视器 (PWatch)
描述
PWatch 提供了运行进程的动态实时视图和历史图。该应用程序类似于知名的 top
工具。但是,虽然 top
很适合快速查看系统概况,PWatch
可以用于密切监视一个或多个进程。使用 PWatch
,可以分析进程在过去发生了什么,即使进程已经 死亡。 PWatch
不会从屏幕上删除已死亡的进程,因此可以在进程退出之前检查内存和 CPU 使用情况,并且 PWatch
会显示进程完成的时间。
要开始监视进程,运行 PWatch
pwatch PID_LIST|REGEX [OPTIONS]
如果参数仅包含数字和逗号,则参数被视为 PID 列表。否则,参数是正则表达式。有关正则表达式的两点说明:a) 它们总是不区分大小写,所以 pwatch firefox
将监视 firefox
、FireFox
等等;b) 正则表达式过滤器匹配到其 二进制文件路径 的进程,而不仅仅是二进制文件名,这允许监视从同一目录启动的不同命名的进程集。
选项
简称 | 全称 | 描述 | 值 |
---|---|---|---|
v | version | 显示应用程序版本 | |
q | quality | 设置 图形质量 | 其中一个是 high 、medium 或 low |
r | refresh | 设置刷新间隔(毫秒) | 默认值为 1000 ,仅限于范围 250 ..10000 中的数字 |
s | scale | 选择内存图形缩放模式 | zero - 图表显示范围从 0 到 maximum ;min (默认) - 从 minimum 到 maximum |
标题 | 为进程设置标题 | cmd (默认) - 进程命令行,path - 可执行文件路径,name - 可执行文件名 |
|
图表 | 选择要显示的图表 | all (默认),mem ,cpu |
简短演示
以下图片显示用户在浏览器中点击“刷新”按钮后,几个Firefox进程发生的情况
当进程数量较少时,应用会显示CPU和MEM图表叠加(如示例所示),而不是并排显示。这允许 PWatch
提供更长的使用历史。
屏幕说明
第一行是系统总数
CPU: 0% MEM: 33% | Total: 3 Hidden: 0 Dead: 0
带有 I/O
的行是自上次测量以来的总读写数据量(括号内为变化量)。对于Linux,它应该显示磁盘I/O,对于Windows,它是进程的总I/O,包括磁盘。
CPU和MEM表示0..100%范围内的总使用量。Total
是 PWatch
监视的进程数。Hidden
是当前未显示但可以通过滚动查看的进程数。Dead
是在 PWatch
监视进程期间退出的进程数。已死进程 不会从屏幕上移除,但 PWatch
停止更新它们,因此已死进程图表看起来像是冻结的。
CPU和MEM图表具有相同的标题。MEM图表用于描述它们显示的内容
226M|
225M|
+16K| ▂▂▂▂▂▁
| █████████
225M| ███████████
++ --
注意:示例中的图表是以最佳质量模式绘制的。有关更多信息,请参阅质量模式。
顶部和底部值是图表显示范围。这些值始终是精确的,因此在这个示例中,图表的顶部正好是 226 MiB
,底部线是 225 MiB
。请注意,对于CPU,底部值是缺失的。这是因为底部CPU线始终是 0%
,因此为了最小化视觉噪声,它被隐藏了。对于内存,底部值可以是任何值,具体取决于 内存缩放模式。
顶部值下面的数字是当前值 - 这是 top
显示的值。该值始终以蓝色绘制,以便更容易读取当前消耗。当前值是一个四舍五入的实数值。
当前消耗值下面的数字是自某个过去时间以来的变化。默认情况下,这是当前值与上次测量值之间的差异。但如果您设置了一个标记,则差异是当前值与标记设置时的值之间的差异。此值可以是空的(在这种情况下显示为 -
),或带有 +
或 -
符号的数字。
在差异下面是最后一个数字 - 全部时间最大值。这是自监控开始以来进程使用的CPU和内存的最大值。可以通过快捷键 r
重置此值。
加号(+)和减号(-)的线条标记了值变化的时间点。这看起来可能有些多余,但当变化很小,图表保持直线时,这些额外的字符可能会派上用场。
预编译的二进制文件
对于Windows和Ubuntu,您可以从发布页面下载预编译的二进制文件。
- 在Windows 10上测试了Windows二进制文件。
- musl-Linux构建
图形质量
默认情况下,图表以最佳质量绘制。但并非所有字体都支持使用的字符,因此如果终端字体缺少某些字符,可以降低图表的细节级别。例如,Consolas
和Currier New
只有所需9个字符中的3个,因此它们只能用于中等
质量。
质量 | 字符集 |
---|---|
低 | 空格 和█ (全块) |
中等 | 空格 、▄ (半块)和█ |
高 | ▂▃▄▅▆▇█ |
缩放模式
缩放模式仅应用于内存图表。CPU图表只有一个模式:从0%
到100%
(如果进程CPU使用率超过100%
,CPU将重新缩放,以确保图表的最高值总是100的倍数)。
为了使小内存使用变化更易辨认,应用程序从启动时开始显示从最低(向下取整)到最高(向上取整)使用值的内存消耗图表。按下键F12
在以下模式和标准模式之间切换:当图表从0(底部)缩放到监控开始以来的最高使用率(顶部)时。
测量差异
热键空格
在两种计算差异的方式之间切换。默认方式显示前一次和当前消耗之间的差异。按下空格
后,顶部将显示消息Delta for last 0s
,PWatch
将记住当前值,然后显示当前值与记住的值之间的差异。
快捷键
键 | 描述 |
---|---|
F1 | 显示/隐藏窗口顶部的简短快捷键提示 |
F2 | 截图 |
F6 | 选择显示的图表,循环显示all 、mem 和cpu |
F7 | 更改图表质量,循环显示high 、medium 和low |
F8 | 从屏幕上移除所有已死进程 |
F9 | 切换进程标题:命令行 (默认),二进制文件路径 ,二进制文件名 |
F12 | 切换内存缩放模式:从最小到最大 (默认),从0到最大 |
r | 重置所有时间最大值:将最大值设置为可见间隔中的最大值 |
空格 | 设置/取消设置用于计算使用差异的时间点 |
q, ESC | 退出 |
箭头、PageUp和PageDown | 如果某些进程超出屏幕范围,则滚动进程列表 |
Home | 滚动到列表中的第一个进程 |
End | 滚动到列表中的最后一个进程可见 |
已死进程
即使在进程退出时,PWatch
也不会删除进程图。它继续显示最后注册的值,并添加一条消息(它替换了CPU的“+/-”底部行),说明进程结束的时间有多久。这对于检查进程退出或崩溃之前发生的事情非常有用,而无需不断盯着屏幕。
截图
热键 F2
将屏幕保存到当前工作目录的文件中。文件名以 shot-
开头,后面跟当前时间,格式为 YearMonthDay-HourMiniuteSecond
。文件扩展名是 .txt
。如果存在同名文件(例如,热键被按了几次),则将其覆盖。
许可证
Apache-2.0
依赖项
~7–17MB
~227K SLoC