gpt4 book ai didi

windows - 为什么 Powershell 中的 Get-WMIObject Win32_Process 这么慢,有什么替代方案?

转载 作者:行者123 更新时间:2023-12-02 23:55:55 26 4
gpt4 key购买 nike

我正在创建一个工具来跟踪内存和 cpu 使用情况或选择的特定进程。为了使工具精确,我需要密切跟踪资源,每隔 50 毫秒探测一次。

假设现代计算机内部发生的任何事情(不包括网络 IO、用户输入)都不会花费更多时间(如果计算量不大,它应该非常快)。我错了,Get-WMIObject CMD'let 需要更多的方式来返回结果,请比较:

time { Get-WMIObject Win32_Process -Filter "ProcessId='24380'"} -Samples 10 -Silent
# ..........
# Avg: 190.5335ms
# Min: 180.3689ms
# Max: 203.6968ms #>

-
time { get-process -name *chrome* 2> $null } -Samples 10 -Silent
# ..........
# Avg: 5.2ms
# Min: 3.7711ms
# Max: 13.5161ms #>

问题:为什么这么慢,我该怎么办(主要动机是使用私有(private)工作集和 Get-WMIObject 在我的工具中提供的许多其他指标)。会与 Win32_PerfRawData_PerfProc_Process 互动来自 C/C++/C# 实用程序是在 Powershell 中使用它的好选择吗?

最佳答案

不要听起来悲观或任何事情,但在powershell中,速度很慢,速度也很慢。使用 measure-command 查找“stuff”运行所需的时间。
用法:
测量命令 { Get-WMIObject Win32_Process -Filter "ProcessId='24380'"}

与 wmi 存储交互的“现代”方式是使用 CIM 实例。使用您正在使用的时间方法或测量命令查看这对您来说是否更快。
例子:/
Measure-Command {Get-Ciminstance -classname Win32Process -filter "processID='24380'"}

关于windows - 为什么 Powershell 中的 Get-WMIObject Win32_Process 这么慢,有什么替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45226455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com