Windows系统评估工具占用cpu:显示进程占用内存的 CPU时间(mcshield process)

我试图通过添加进程的内核模式时间和用户模式时间来显示 10 个进程,这些进程在具有 cpu 时间的系统中消耗了大部分内存。

Get-WmiObject Win32_Process -ComputerName XXXXX |
    Sort-Object WorkingSetSize -Descending |
    Select-Object -First 10 |
    Format-Table -AutoSize Name, ProcessID,
        @{Label = "Consumed Memory(MB)"; Expression = {
            [math]::Round(($_.WorkingSetSize/1MB), 2) }},
        @{Name = "Cpu Time"; Expression = {
            "{0:HH:mm:ss}" -f ([datetime]$ts = [timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime)).Ticks }}

输出:

Name                         ProcessID Consumed Memory(MB) Cpu Time
----                         --------- ------------------- --------
SC.Server.WindowsService.exe     58400             2300.46
tesvc.exe                         1680              138.88
iipress.exe                   59004               98.61
java.exe                         39020               77.68
mcshield.exe                      2436               63.68
svchost.exe                        828               47.12
ls.exe                          588               33.65
CcmExec.exe                       2496                20.8
svchost.exe                        692               14.34
svchost.exe                        796               14.14

你能告诉我这有什么问题吗?

3

您的括号是关闭的,您需要删除赋值操作。您需要将Timespan值的刻度强制转换为DateTime值。

改变这一点:

"{0:HH:mm:ss}" -f ([datetime]$ts = [timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime)).Ticks

其中:

"{0:HH:mm:ss}" -f [datetime][timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime).Ticks

如果你很好,得到几分之一秒,你也可以format the Timespan directly

'{0:c}' -f [timespan]::FromTicks($_.KernelModeTime + $_.UserModeTime)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(746)
Wireshark源码解析:Wireshark接口
上一篇
Tion后缀:Gradle-Shadownet.dv8tionJDA到JavaMinecraft Paper插件
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(24条)