C#应用程序中夫妇函数的性能分析。我使用.Net秒表来计时超过20000个电话的功能。时间到了每次通话约2.8ms。dotTrace和秒表功能计时的巨大差异
但是,当在逐行模式下使用dotTrace时,我发现20,000次调用我的函数需要249,584ms,这是每次调用大约12.5ms。
现在,函数被附加到一个调度计时器,所以秒表位于该函数内部,并且不会注册该调用本身。像这样:
private static Stopwatch myStop = new Stopwatch();
private MyFunction(object obj, EventArgs e)
{
myStop.Start()
//Code here
myStop.Stop();
Console.WriteLine("Time elapsed for View Update: {0}", myStop.Elapsed);
myStop.Reset();
}
但是,我觉得很难相信通话平均需要10毫秒。
还有什么可能会影响探查器或秒表的时间?调度计时器事件是否影响很多时间?
我已经浏览了一些JetBrains论坛,并且无法找到任何与此相关的内容,但是我相信我可以看起来更加努力,并且会继续这样做。我确实意识到秒表在某些方面不可靠,但并不认为它可能如此。
应该指出的是,这是我第一次在C#或.Net中分析代码。