微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在命令行上获得Windows Pid的CPU使用率?

我知道通过进程名得到这个的许多方法,但是我有许多相同名称的进程(Java),所以需要使用PID。

很高兴使用任何工具/语言来完成这件事。

最终这将被称为使用Cygwin。 谢谢

如何确定Linux中某些用户下运行的进程产生多lesscpu负载

如何禁用dynamic频率缩放?

顶部显示用户间的cpu利用率,但所有的过程显示0

cpu如何从磁盘读取?

为什么flush_dcache_page()在Linux内核中什么都不做?

nanosleep高cpu使用率?

linux迁移过程中cpu的使用率是如此之高,为什么?

使用Python查找cpu L3caching大小

Windows cpu通知,因为ColdFusion应用程序运行exception

如何通过命令/程序在Windows中获得“平均负载

您可以使用psTools来尝试下面的命令

pslist <pid> -s

你可以使用一个快速的PowerShell脚本:

$searchPid = 6204 get-process | where-object Id -eq $searchPid | select-object cpu

在命令行,你应该只需要这个:

powershell "get-process | where-object Id -eq 6204 | select-object cpu"

UPDATE

如注释中所述,get-process只返回进程已经使用的cpu时间,因此它不能帮助cpu的使用百分比。 看起来像一个WMI调用应该得到你的百分比:

powershell "get-wmiobject Win32_PerfFormattedData_PerfProc_Process | where-object idprocess -eq 6204 | select PercentProcessorTime"

这VB脚本似乎做的伎俩,传递在命令行上的PID:(初始循环可以省略)

对于Getobject(“winmgmts:”)中的每个进程,ExecQuery(“Select * from Win32_Process where Handle =”&WScript.Arguments.Item(0)&“”)

WScript.echo Process.Handle&“”&Process.name&“”&cpuUSage(Process.Handle)&“%”

一个

函数cpuUSage(ProcID)

错误恢复下一步

Set objService = Getobject(“Winmgmts:{impersonationlevel = impersonate}! Root Cimv2”)

对于objService.ExecQuery中的每个objInstance1(“Select * from Win32_PerfRawData_PerfProc_Process where IDProcess ='”&ProcID&“'”)

N1 = objInstance1.PercentProcessorTime

D1 = objInstance1.TimeStamp_Sys100NS

退出

一个

WScript.Sleep(2000)

对于objService.ExecQuery(“Select * from Win32_PerfRawData_PerfProc_Process where IDProcess ='”&ProcID&“'”)中的每个perf_instance2,

N2 = perf_instance2.PercentProcessorTime

D2 = perf_instance2.TimeStamp_Sys100NS

退出

一个

const wbemFlagReturnImmediately =&h10

常量wbemFlagForwardOnly =&h20

strComputer =“。”

设置objWMIService = Getobject(“winmgmts:\”&strComputer&“ root CIMV2”)

设置colItems = objWMIService.ExecQuery(“SELECT * FROM Win32_Processor”,“WQL”,_

wbemFlagReturnImmediately + wbemFlagForwardOnly)

对于每个对象在colItems中

Nc = objItem.NumberOfLogicalProcessors

一个

'CounterType - PERF_100NSEC_TIMER_INV

公式 - (1-((N2-N1)/(D2-D1)))×100

Nd =(N2-N1)

Dd =(D2-D1)

Nd / Dd =使用的核心数量

'((Nd / Dd)/ Nc)* 100 =整箱使用的百分比

PercentProcessorTime =((Nd / Dd)/ Nc)* 100

cpuUSage = Round(PercentProcessorTime,2)

结束功能

例如(在cygwin中)如果上面的文件cpu.vbs:cmd / c cscript / nologo cpu.vbs 64940

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐