按进程及其线程查找CPU使用率和核心数

时间:2018-09-11 04:25:15

标签: windows powershell process cpu xperf

在linux中,我们有pstop命令,它们可以非常详细地说明进程的CPU利用率以及运行在哪些内核上。

我们在Windows中是否有类似的东西可以为进程及其线程提供CPU使用率,以及它在命令行上运行在哪个Core上?

我查看了tasklistwmic,但都没有给出进程在哪个内核上运行。还有另一个名为 Xperf 的工具,但是似乎有些复杂,因为它与另一个工具一起提供给GUI,以便我们在其中寻找内核。

有什么简单的方法吗?

1 个答案:

答案 0 :(得分:0)

当然,每个操作系统都不同,因此需要调整期望值。

对于这种事情,没有特定的单个独立cmdlet。因此,不,您必须编写所需的内容。 Windows上的进程类中的任何内容都没有CPU属性,但没有Cores属性。

即使您追求什么,它也位于不同的对象中。

Get-WmiObject -Class Win32_Process | Select-Object -Property * -First 1
Get-WmiObject -Class Win32_Processor | Select-Object -Property *
Get-WmiObject -Class Win32_ComputerSystem | Select-Object -Property *

全部,如果您要复制ps和top之类的Linux。您将必须查看MSDN,Pinvoke等上的较低级别的API。

自从这不是第一次提出这个问题以来,尽管有很多流派。请参阅此处概述的信息:

  

Get-ProcessThreadsInfo

     

PowerShell Problem Solver: Getting Process Details

     

Determine which CPU a process is running on

     

Identify processor (core) is used by specific thread