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

Memory counter - Collision Detection Project

本文关键字:项目 碰撞检测 计数器 内存      更新时间:2023-10-16

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

他使用调试等 - 并且为了收集有关mem使用情况的统计数据,他使用了Windows和任务管理器 - 这给了他迄今为止所需的所有最终结果。结果还没有达到预期(Octree总体上将使用更多内存)。

他的导师建议他在每个"初始化"后检查记忆,然后在测试中绘制

出图表。

他被指向瓦尔格林德的方向....但它看起来很复杂,因为Ehe患有自闭症,他担心这可能会影响他的计划:o)

任何人都建议一种简单的方法来获取有关内存的信息,如果不是帧速率和CPU使用率???

感激地收到任何帮助,因为我什么都不知道,所以根本帮不了他,除了在这里打字 - 因为这是"社交"环境,他无法处理它。

谢谢罗莎琳

对于内存泄漏

如果你使用的是Windows,Visual C++ by Microsoft(Express版本是免费的)有一个很好的调试工具,可以很容易地设置,说明可以在这里找到;否则,如果你在Linux上,Valgrind是标准之一。我经常使用Visual C++工具,这是一个很好的验证,证明您没有内存泄漏。此外,您可以使用它使您的程序中断从内存泄漏日志中获取的分配编号,以便它快速将您指向何时何地分配泄漏的内存。同样,它很容易实现(只需几个头文件,然后是您想要转储泄漏的单个函数调用)。

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

对于帧速率和 CPU 使用率

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

看起来您是在Windows系统下运行的。 这不是一个编程解决方案,你可能已经尝试过了(所以请随意忽略),但如果不是,你应该看看性能监视器(它是Windows附带的工具之一)。 它可以让您跟踪有关单个进程和整个系统(CPU/提交大小等)的各种有用统计信息。 当程序运行时,它会将结果绘制为图形,您可以保存结果以供将来查看。

在 Windows 7 上,您可以从此处访问它:

Control PanelAll Control Panel ItemsPerformance Information and ToolsAdvanced Tools

然后打开性能监视器。

对于旧版本的窗口,它曾经是管理工具选项之一。