我想测量方法的cpu时间不使用StopWatch或Process但使用.NET Profiler PerformanceCounter。
我看到他们只是计算进程使用了多少cpu的唯一方法
PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", ProcessName);
CounterSample cs1 = cpuCounter.NextSample();
但我正在寻找使用此API在此过程中花费的所有时间。
答案 0 :(得分:2)
我担心这是不可能的。 PerformanceCounter
旨在读取系统进程信息。系统没有关于您在流程中实际执行的操作的信息。
在单线程应用程序中,您可以使用PerformanceCounter
并从方法执行的开始到结束选择值(在调用方法之前只调用NextSample
一次并收集结果调用之后)。
作为一种非程序化方法,您可以使用Visual Studios性能分析工具来收集有关您的应用程序在哪种方法上花费的时间的更多信息。它为您提供有关应用程序的CPU消耗的非常深入的信息。快速介绍here。