2012-04-23 68 views
0

我的遊戲運行了很多計算,有時框架速度沒有明顯的原因下降,我想知道需要花費很長時間來處理。如何創建計時器(或其他)來打印每個主要操作的已用時間?如何記錄耗時的操作? (C#)

UPD:運行默認分析器後,我發現瓶頸在我的tile數組循環中。我有大約50萬塊瓷磚,並且環路要求瓷磚的一個屬性,每個框架大約200塊瓷磚。像這樣:

if (tileArray[tile].this_tile_is_on_screen) 
tileArray[tile].Draw(); 

當tileArray非常大時,這會導致速度變慢嗎?有關如何避免它的任何建議?

+2

您是否在尋找與[標準配置](http://en.wikipedia.org/wiki/Profiling_(computer_programming))不同的東西? – sarnold 2012-04-23 00:03:07

+0

我試着用分析器和更新後的結果。 – user1306322 2012-04-23 00:23:35

+1

我想建議您打開一個關於您的配置文件_results_的新問題;修復一個應用程序與學習如何在_any_應用程序中查找緩慢點不同。 (任何機會,你可以填充更小的應該是可見或不可見的瓷磚列表,並刪除500,000瓷磚循環?) – sarnold 2012-04-23 00:28:56

回答

2

使用Profiler,例如EQATEC Profiler for .NET,或內置在Premium和Ultimate版本Visual Studio中的探查器。

如果您已經在使用諸如log4Net之類的日誌框架,那麼您可以在日誌中散佈代碼段並調出日誌記錄詳細程度。