![如何在进程资源管理器中保留已退出的进程](https://linux22.com/image/1612796/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%9B%E7%A8%8B%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E5%99%A8%E4%B8%AD%E4%BF%9D%E7%95%99%E5%B7%B2%E9%80%80%E5%87%BA%E7%9A%84%E8%BF%9B%E7%A8%8B.png)
我使用 sysinternals 进程资源管理器来跟踪我正在测试的进程的峰值工作集,以对它们进行基准测试,但它们在几秒钟后就消失了。有没有办法让(某些)进程即使在终止后也不会消失,或者有没有其他方法(除了进程资源管理器)来获取进程的峰值工作集?我正在考虑类似于 的东西time
,但是一个可以提供最大内存使用量的命令。
答案1
您可以点击 PE 中的“选项”菜单,然后选择“差异突出显示持续时间”。默认值为 1 秒,这意味着新进程以绿色突出显示 1 秒,而终止的进程在关闭后仍以红色突出显示 1 秒。但是,您只能通过 UI 将此值提高到最大 9 秒。
如果您需要更长的持续时间,您可以在 处编辑关联的注册表值HKCU\SOFTWARE\Sysinternals\Process Explorer
。[在此处插入标准注册表免责声明]
将 的值设置HighlightDuration
为所需的时间长度(以毫秒为单位)。例如,如果您想要 30 秒的突出显示持续时间,您可以将其设置为 30000(请确保将对话框设置为十进制模式,以免得到意外结果!),或者 5 分钟,设置为 300000。看起来最大值是 0xffffffff,即 429 万秒,我认为这可能足以满足您的需求。
如果需要使用 regedit 方法,请务必使用 PE 进行更改不是运行时,因为它只在打开时从注册表读取存储的值,并且只在退出时将更改写回注册表,显然只有在 PE 运行时才将它们保存在 RAM 中。因此,如果您在 PE 运行时更改注册表,它将不会对正在运行的程序产生影响,并且它将在 PE 关闭时被覆盖。
答案2
资源监视器(管理工具)将跟踪正在进行的进程。只要资源监视器处于打开状态,这些进程就会被保留,您可以跟踪您感兴趣的进程。这可能更适合您。
答案3
如果一次只有一个这样的过程,并且它持续时间足够长或者你足够快:
双击进程列表中的条目;或选择它并右键单击/属性或按回车键或 ALT+(P)rocess/(P)roperties
这将打开一个(模式)子窗口,其中包含有关该进程的数据。如果该进程随后退出,它将从主窗口的列表中删除,但子窗口仍保持打开状态。性能和性能图表选项卡停止更新,但继续显示最终数据(退出前的最后一次更新)。性能包括峰值专用字节和峰值工作集等。
答案4
更新:阅读 Dan Henderson 的回答。看来 PE 中已添加了一项功能,可执行此处请求的功能。
原始答案:我不相信这是 Process Explorer 应用程序的功能。
它被设计为一个任务管理器,而不是一个持续的进程跟踪器。
您必须找到另一种方式来按照您想要的方式跟踪此信息。