【发布时间】:2015-04-10 08:43:20
【问题描述】:
我想测量不使用 StopWatch 或 Process 而是使用 .NET 分析器 PerformanceCounter 的方法的 CPU 时间。
我看到他们是计算进程使用多少 cpu 的唯一方法
PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", ProcessName);
CounterSample cs1 = cpuCounter.NextSample();
但我正在寻找在使用此 API 的过程中所花费的所有时间。
【问题讨论】:
-
您是在代码内部测量此方法还是尝试测量第 3 方程序?此外,从您的 cmets 到 Patrik 的回答,这听起来像是 XY Problem。你有一个问题,你认为使用性能计数器是解决方案,所以你问如何使用性能计数器。而不是这样做编辑您的问题以询问您要解决的实际问题,您可以提及您认为性能计数器是解决它的方法,但您可能会得到更好的解决方案
-
我已经使用了问题中提到的 StopWatch And Process 并且它不准确。我正在尝试检查是否有人已经使用 PerformanceCounter 来测量方法的时间(在方法中调用外部或内部代码)。如果我用 Process 或 StopWatch 运行该方法几次来测量时间,它会给我几个值,它们之间的间隔 > 0。所以我希望找到间隔 ==> 0 的最佳方法
标签: c# performance performancecounter measurement