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中分析代碼。