c++ - 分析函数内存和 CPU 使用率

标签 c++ visual-studio debugging sfml

我正在制作一个视频游戏,这是一个非常小的 2D 射击游戏。最近我注意到当场景中有大约 9 颗或更多子弹时,帧速率会急剧下降。我的笔记本电脑可以玩高级 3D 游戏,而且我的游戏非常非常简单,所以硬件应该不是问题。

所以现在我有一个非常大的代码(至少对于一个人来说)而且我很困惑我应该在哪里寻找?子弹相关的函数和类太多了,比如渲染函数有问题还是update函数不知道怎么分析?其他程序我可以使用MVS 2015调试工具,但是对于一个游戏来说,它不实用,例如,如果我在渲染函数之前放置一个断点,它应该在一秒钟内检查60次而且我无法输入任何东西所以我永远不会有子弹来测试渲染功能!我尝试使用任务管理器,发现每发子弹的 CPU 使用率上升得非常快,但当游戏速度变慢时,只使用了 10% 的 CPU!

所以我的问题是:

  • 无法使用调试工具如何分析函数?

  • 为什么游戏在仍然可以使用系统资源的情况下变慢了?

最佳答案

要查看哪个部分消耗了最多的处理能力,您应该使用函数 profiler .它不会“调试”,但会在完成后创建报告。

Valgrind是一个很好的工具。

为什么游戏变慢了?取决于您的实现。我可以创建一个程序来除以两个数字,并让它花费 5 分钟来计算结果。

关于c++ - 分析函数内存和 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115545/

相关文章:

c# - 如何将.exe从C++项目复制到C#项目的输出目录?

java - 如何在 Android studio 中的 Runnable() 中断中设置断点?

javascript - 如何动态显示模态中出现的内容

c++ - Visual Studio : Variable is being used without being initialized

c++ - 优先级特化

c++ - 错误 : expected primary-expression before ')' token (C)

python - Visual Studio 2012 中的 IronPython

c++ - MSCV、构造函数、析构函数和 NRVO 行为

c# - Visual Studio 设计时属性 - 表单列表下拉列表

c - 多线程调试C程序