我正在制作一个视频游戏,这是一个非常小的 2D 射击游戏。最近我注意到当场景中有大约 9 颗或更多子弹时,帧速率会急剧下降。我的笔记本电脑可以玩高级 3D 游戏,而且我的游戏非常非常简单,所以硬件应该不是问题。
所以现在我有一个非常大的代码(至少对于一个人来说)而且我很困惑我应该在哪里寻找?子弹相关的函数和类太多了,比如渲染函数有问题还是update函数不知道怎么分析?其他程序我可以使用MVS 2015调试工具,但是对于一个游戏来说,它不实用,例如,如果我在渲染函数之前放置一个断点,它应该在一秒钟内检查60次而且我无法输入任何东西所以我永远不会有子弹来测试渲染功能!我尝试使用任务管理器,发现每发子弹的 CPU 使用率上升得非常快,但当游戏速度变慢时,只使用了 10% 的 CPU!
所以我的问题是:
无法使用调试工具如何分析函数?
为什么游戏在仍然可以使用系统资源的情况下变慢了?
最佳答案
要查看哪个部分消耗了最多的处理能力,您应该使用函数 profiler .它不会“调试”,但会在完成后创建报告。
Valgrind是一个很好的工具。
为什么游戏变慢了?取决于您的实现。我可以创建一个程序来除以两个数字,并让它花费 5 分钟来计算结果。
关于c++ - 分析函数内存和 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115545/