使用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
需要获得样品。
它在内部引用WMI本身。 –