我不知道標題是否有意義,但我想要做的是定時兩種不同的方法,看看它們每秒執行多少次,或者說每10秒執行一次。如何配置C#方法每秒?
例如:
DividePolygons1(Polygon[] polys)
DividePolygons2(Polygon[] polys)
DividePolygons1 ran:
1642 times per 1 second
DividePolygons2 ran:
1890 times per 1 second
我不知道標題是否有意義,但我想要做的是定時兩種不同的方法,看看它們每秒執行多少次,或者說每10秒執行一次。如何配置C#方法每秒?
例如:
DividePolygons1(Polygon[] polys)
DividePolygons2(Polygon[] polys)
DividePolygons1 ran:
1642 times per 1 second
DividePolygons2 ran:
1890 times per 1 second
的System.Diagnostics.Stopwatch
課程將幫助你在這裏,但要小心使用,結果不知何故,以便優化並不能消除你試圖衡量的邏輯。
除此之外,只需運行您在循環中分析數百萬次的代碼(調整迭代次數以使其在1到30秒之間),然後將迭代次數除以獲得每秒執行吞吐量。
我會怎麼做:
Stopwatch
。Stopwatch
並檢查TotalSeconds
對我正在增加的變量。Visual Studio 2010有一個分析器,它可以確定每個時間單元的方法調用的確切數量。
謝謝,它是在專業版嗎? (不是最終版本) – 2010-12-13 23:36:49
Profiler可用於Premium和Ultimate版本,但不支持Pro。請參閱「調試和診斷」下的http://www.microsoft.com/visualstudio/en-us/products。 – 2010-12-13 23:42:58
並且使用一個發佈版本並且在啓動程序時沒有附加調試器。在啓動基準測試之前,最好運行所有的代碼,以便像JITing這樣的啓動效果不被測量。 – CodesInChaos 2010-12-13 22:19:05
不要忘記注意參考地點。劃分相同的確切多邊形可能需要更長的時間,如果它們並不總是在同一時間創建的話。 – 2010-12-13 22:24:51
@CodeInChaos,我如何確保沒有附加調試器?使用發佈版本會自動執行此操作嗎? – 2010-12-13 23:38:23