我的游戏进行了大量的计算,有时帧速率下降没有明显的原因,我想知道需要花费这么长时间来处理。如何创建一个计时器(或其他东西)来打印每个主要操作的经过时间?
运行默认探查器后,UPD:,我发现瓶颈在我的磁贴阵列循环中。我有大约五十万个瓷砖,并且循环要求瓷砖的一个属性,每帧大约200个瓷砖。像这样:
if (tileArray[tile].this_tile_is_on_screen)
tileArray[tile].Draw();
当tileArray非常大时,这会导致速度减慢吗?关于如何避免它的任何建议?
答案 0 :(得分:2)
使用EQATEC Profiler for .NET等分析器,或Visual Studio的Premium和Ultimate版本内置的分析器。
如果您已经在使用日志框架(例如log4Net),则可以使用日志记录部分代码,并提高日志记录的详细程度。
答案 1 :(得分:2)
我通常使用Stopwatch命名空间中的Diagnostic类作为计时器 WriteLine类的Debug函数用于打印输出以打印已用时间。