c++ - 内存计数器 - 碰撞检测项目

标签 c++ memory count collision-detection

我想我会问专家 - 看看你能不能帮我 :o) 我儿子使用蛮力和八叉树算法编写了用于碰撞检测的 C++ 代码。

他使用了 Debug 等工具——为了收集内存使用情况的统计数据,他使用了 Windows 和任务管理器——这为他提供了迄今为止所需的所有最终结果。结果尚未达到预期(Octree 总体上会使用更多内存)。

他的导师建议他在每个“初始化”后检查内存,然后在测试中绘制点。

他被指向 Valgrind 的方向....但它看起来很复杂,因为他有自闭症,他担心这可能会影响他的程序 :o)

如果没有帧率和 CPU 使用率,有人建议一种简单的方法来获取有关内存的信息吗???

感谢收到的任何帮助,据我所知,一无所知所以根本无法帮助他,除了在这里打字 - 因为这是他无法处理的“社交”环境。

谢谢 罗莎琳

最佳答案

对于内存泄漏:

如果您使用的是 Windows,Microsoft 的 Visual C++(Express 版本为 free)有一个很好的调试工具,并且可以通过说明轻松设置 here ;否则,如果您使用的是 Linux,则 Valgrind 是标准之一。我经常使用 Visual C++ 工具,它可以很好地验证您没有内存泄漏。此外,您可以使用它来使您的程序中断从内存泄漏日志中获得的分配编号,以便它快速为您指明何时何地分配了泄漏的内存。同样,它很容易实现(只需几个头文件,然后是一个函数调用,您可以在其中转储泄漏)。

我发现实现 VC++ 工具的最佳方法是在 main 返回值之前调用将内存泄漏转储到输出窗口。这样,您就可以捕获程序中绝对所有内容的泄漏。这非常有效,我已经将它用于一些高级软件。

对于帧率和 CPU 使用率:

我通常使用自己的工具进行基准测试,因为一旦您学会了要调用的函数,它们就不难编写代码;这通常需要操作系统 API 调用,但我认为 Boost 具有可用的功能并且是跨平台的。可能还有其他工具可以跟踪操作系统中的进程以获取基准测试数据,但我不确定它们是否免费。

关于c++ - 内存计数器 - 碰撞检测项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5930150/

相关文章:

c++ - 如何在 C++ 中用 -2147483648 初始化 vector

c++ - 为什么此代码不起作用(请参阅详细信息)?

java - 当一个对象只被定义时会发生什么?

c++ - Windows:直接读取另一个进程的内存

count - Pandas python如何计算数据框中的记录或行数

c++ - 如何引用作为模板参数传递的派生类中定义的类型?

c++ - Boost Geometry最近的查询是否总是先按最小距离对结果进行排序?

python - 如何更改存储在内存地址中的值?

count - 以编程方式从 MediaWiki wiki 获取文章总数

mysql - 返回字段中具有唯一数据的记录