#process #cpu-memory #top #watch #terminal #resources #cli

app pwatch

进程监视器 - 用于监视所选进程及其资源使用历史图的工具

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 命令行工具

Apache-2.0

155KB
1.5K SLoC

进程监视器 (PWatch)

Build

描述

PWatch 提供了运行进程的动态实时视图和历史图。该应用程序类似于知名的 top 工具。但是,虽然 top 很适合快速查看系统概况,PWatch 可以用于密切监视一个或多个进程。使用 PWatch,可以分析进程在过去发生了什么,即使进程已经 死亡PWatch 不会从屏幕上删除已死亡的进程,因此可以在进程退出之前检查内存和 CPU 使用情况,并且 PWatch 会显示进程完成的时间。

要开始监视进程,运行 PWatch

pwatch PID_LIST|REGEX [OPTIONS]

如果参数仅包含数字和逗号,则参数被视为 PID 列表。否则,参数是正则表达式。有关正则表达式的两点说明:a) 它们总是不区分大小写,所以 pwatch firefox 将监视 firefoxFireFox 等等;b) 正则表达式过滤器匹配到其 二进制文件路径 的进程,而不仅仅是二进制文件名,这允许监视从同一目录启动的不同命名的进程集。

选项

简称 全称 描述
v version 显示应用程序版本
q quality 设置 图形质量 其中一个是 highmediumlow
r refresh 设置刷新间隔(毫秒) 默认值为 1000,仅限于范围 250..10000 中的数字
s scale 选择内存图形缩放模式 zero - 图表显示范围从 0maximummin(默认) - 从 minimummaximum
标题 为进程设置标题 cmd(默认) - 进程命令行,path - 可执行文件路径,name - 可执行文件名
图表 选择要显示的图表 all(默认),memcpu

简短演示

以下图片显示用户在浏览器中点击“刷新”按钮后,几个Firefox进程发生的情况

Watching Firefox processes

当进程数量较少时,应用会显示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%范围内的总使用量。TotalPWatch 监视的进程数。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构建

图形质量

默认情况下,图表以最佳质量绘制。但并非所有字体都支持使用的字符,因此如果终端字体缺少某些字符,可以降低图表的细节级别。例如,ConsolasCurrier New只有所需9个字符中的3个,因此它们只能用于中等质量。

质量 字符集
空格(全块)
中等 空格(半块)和
▂▃▄▅▆▇█

缩放模式

缩放模式仅应用于内存图表。CPU图表只有一个模式:从0%100%(如果进程CPU使用率超过100%,CPU将重新缩放,以确保图表的最高值总是100的倍数)。

为了使小内存使用变化更易辨认,应用程序从启动时开始显示从最低(向下取整)到最高(向上取整)使用值的内存消耗图表。按下键F12在以下模式和标准模式之间切换:当图表从0(底部)缩放到监控开始以来的最高使用率(顶部)时。

测量差异

热键空格在两种计算差异的方式之间切换。默认方式显示前一次和当前消耗之间的差异。按下空格后,顶部将显示消息Delta for last 0sPWatch将记住当前值,然后显示当前值与记住的值之间的差异。

快捷键

描述
F1 显示/隐藏窗口顶部的简短快捷键提示
F2 截图
F6 选择显示的图表,循环显示allmemcpu
F7 更改图表质量,循环显示highmediumlow
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