确定进程在哪个 CPU 上运行

确定进程在哪个 CPU 上运行

使用 Sysinternals 的 Process Explorer,是否有一列可用于指示进程在哪个 CPU 上运行?如果没有列,还有其他方法吗?

答案1

请求于2005

我对 Process Explorer 中集成的功能印象深刻,但希望看到一个选项,可以在主窗口中以列切换的形式显示每个进程的 CPU 亲和性。

没有反应。

已请求2007年

感谢这些出色的实用程序。我的要求是向进程资源管理器添加一个列选项以显示 CPU 亲和性。就是这样。

没有反应。

类似讨论2013年

如果有一个名为“核心使用情况”的新进程性能视图列来显示进程所运行的核心的使用总和,那就太好了。

基本概要:这不可能做到。

线程是发送到核心进行处理的内容,而不是进程。大多数现代进程都有多个线程。

如果您手动设置亲和力对于一个进程,那么该进程的所有线程都应该坚持使用单个处理器。由于您手动设置它,因此您应该知道它在哪个 CPU 上。;)

但是如果您不指定,那么线程将由操作系统和底层处理硬件控制,并且会以无法观看的速度在处理器之间跳转,并且在显示给您时很可能不准确。

也许可以查看这些 SU 问题以了解更多信息:

另外,来自 StackOverflow 的信息:

现在如果你编写了程序,你可以使用获取当前处理器编号,报告调用该函数的线程当前使用的处理器。

使用它可以让你估计关于线程的处理器使用情况,因为您永远无法确定线程在一个周期到下一个周期的位置(再次,除非您故意设置亲和性)。

更多信息:

答案2

这可以通过捕获 xperf 跟踪并使用以下方式打开它来完成Windows 性能分析器(WPA.exe)来自Windows性能工具包,在这里您可以添加一列CPU来查看进程正在哪个CPU(核心)运行:

在此处输入图片描述

相关内容