使用windows命令行获取每个核心的CPU使用率

问题描述:

是否可以打印系统中每个核心的当前CPU使用率?使用windows命令行获取每个核心的CPU使用率

这是我到目前为止使用PowerShell:

Get-WmiObject -Query "select Name, PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor" 

它可以使用下面的PowerShell命令来完成:

(Get-WmiObject -Query "select Name, PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor") | foreach-object { write-host "$($_.Name): $($_.PercentProcessorTime)" }; 

你也可以创建一个与内容称为get_cpu_usage.ps1文件:

while ($true) 
{ 
    $cores = (Get-WmiObject -Query "select Name, PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor") 
    $cores | foreach-object { write-host "$($_.Name): $($_.PercentProcessorTime)" }; 
    Start-Sleep -m 200 
} 

然后运行它使用:

powershell -executionpolicy bypass "get_cpu_usage.ps1" 

作为替代方案,您可以使用Get-Counter命令。

例如:

Get-Counter -Counter '\Processor(*)\% Processor Time' -Computer $desktop | select -ExpandProperty CounterSamples 

从我的测试中它的速度更快,大约4倍(ATLEAST在我的机器上)不查询WMI。

编辑: 测试查询更多一些,反复使用后会更快(有平均的284 ms),因为至少1秒Get-Counter需要获得样品。

+0

它在内部引用WMI本身。 –