【发布时间】:2015-04-20 13:13:36
【问题描述】:
我只是测量 a 方法的 cpu 时间,但它给了我不同的时间,为什么?
for (int i = 0; i < 10; i++){
TimeSpan start = Process.GetCurrentProcess().UserProcessorTime;
testFunction(100000);
TimeSpan end = Process.GetCurrentProcess().UserProcessorTime;
Console.WriteLine(end-start);
}
【问题讨论】:
-
它们有多大不同?
-
和以前一样的问题,那个定时器的分辨率不是很好。它仅精确到 +/- 0.016 秒。代码的运行速度通常比这快很多。请改用 Stopwatch 类。而且您必须多次运行测试,仅以测量的中位数作为粗略指示。并考虑使用分析器。
-
@HansPassant 如果我使用 StopWatch,我将无法仅计算 cpu 时间,但它也会给我在后台处理的时间,这会使我的价值出错
-
@WaiHaLee 结果是 904.8058 920.4059 920.4059 889.2057 904.8058 920.4059 920.4059 920.4059 920.4059 920.4059
标签: c# .net performance process measurement