1

我的游戏运行了很多计算,有时帧率会在没有明显原因的情况下下降,我想知道什么需要这么长时间来处理。如何创建一个计时器(或其他东西)来打印每个主要操作的经过时间?

UPD:运行默认分析器后,我发现瓶颈在我的 tile 数组循环中。我有大约 50 万个瓷砖,循环要求瓷砖的一个属性,每帧大约 200 个瓷砖。像这样:

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

当 tileArray 非常大时,这会导致减速吗?关于如何避免它的任何建议?

4

2 回答 2

3

使用诸如EQATEC Profiler for .NET之类的分析器,或内置于Visual Studio Premium 和 Ultimate 版本中的分析器。

如果您已经在使用日志框架,例如 log4Net,您可以在代码段中添加日志并调高日志的详细程度。

于 2012-04-23T00:03:54.023 回答
3

我通常使用Diagnostic命名空间中的Stopwatch类作为计时器。来自Debug类的 WriteLine函数用于打印输出以打印经过的时间。

于 2012-04-23T00:16:07.853 回答