我以为我会问专家 - 看看你是否可以帮助我:o) 我的儿子使用Brute Force和Octree算法编写了用于碰撞检测的C ++代码。
他已经使用了Debug等 - 并且收集了他使用过windows& mem的mem使用情况的统计数据。任务经理 - 给了他迄今为止所需的所有最终结果。结果还没有像他们预期的那样(Octree会使用更多的内存)。
他的导师建议他在每次“初始化”后检查记忆,然后通过测试绘制点。
他被指向Valgrind的方向......但它看起来很复杂,因为他患有自闭症,他担心这会影响他的程序:o)
任何人都建议一种简单的方法来获取内存信息,如果不是帧率和CPU使用率
感谢任何帮助,因为我知道没有因此根本不能帮助他,除了在这里打字 - 因为这是“社交”环境,他无法处理它。 / p>
由于 罗莎琳
答案 0 :(得分:2)
内存泄漏:
如果您使用的是Windows,Microsoft的Visual C ++(Express版本为free)有一个很好的调试工具,并且可以通过指令轻松设置here;否则如果你在Linux上,Valgrind就是其中一个标准。我经常使用Visual C ++工具,这是一个很好的验证,你没有内存泄漏。此外,您可以使用它来启用程序以中断从内存泄漏日志中获得的分配编号,以便快速指向内存被分配泄漏的时间和位置。同样,它很容易实现(只需要几个头文件,然后是你想要泄漏泄漏的单个函数调用)。
我发现实现VC ++工具的最佳方法是在main返回值之前调用将内存泄漏转储到输出窗口。这样,您可以捕获程序中绝对所有内容的泄漏。这非常有效,我已经将它用于一些高级软件。
对于帧速率和CPU使用率:
我通常使用自己的工具进行基准测试,因为一旦你学习了要调用的函数,它们就不难编码了;这通常需要OS API调用,但我认为Boost有可用并且是跨平台的。可能还有其他工具可以跟踪操作系统中的过程以获取基准测试数据,但我不确定它们是否是免费的。
答案 1 :(得分:1)
看起来你正在Windows系统下运行。这不是一个编程解决方案,你可能已经尝试过了(所以可以随意忽略),但如果没有,你应该看一下性能监视器(它是windows附带的工具之一)。它将让您跟踪有关各个过程和整个系统(cpu / commit size等)的各种有用统计信息。它会在程序运行时将结果绘制为图形,您可以保存结果以供将来查看。
在Windows 7上,您可以从这里开始:
Control Panel\All Control Panel Items\Performance Information and Tools\Advanced Tools
然后打开性能监视器。
对于旧版本的Windows,它曾经是管理工具选项之一。