Tag: #windows winapi

性能计数器读取访问速度非常慢 – 任务管理器如何执行此操作?

我试图实现一个性能监视工具,我想监视内存和CPU等基本内容。 我试图通过使用性能计数器这样做,因为我相信这也是任务管理器在幕后使用的。 我不知道任务管理器是如何做到这一点的,但对我而言,使用此方法检索过程数据似乎需要花费很长时间: class Program { static void Main(string[] args) { while (true) { var pcs = Process.GetProcesses() .Select(p => new PerformanceCounter(“Process”, “Working Set – Private”, p.ProcessName)); var sw = Stopwatch.StartNew(); foreach (var pc in pcs) pc.NextValue(); Console.WriteLine($”Time taken to read {pcs.Count()} performance counters: {sw.ElapsedMilliseconds}ms”); Thread.Sleep(1000); } } } 有没有人有任何关于如何做到这一点或任务管理器或Process Explorer如何做到这一点的建议?