使用内存分析

时间:2015-05-01 05:16:14

标签: memory profiling

什么意思是内存分析?

是否提供内存统计信息,比如使用了多少内存?

这有什么不同吗?

1 个答案:

答案 0 :(得分:0)

问题是,你可能正在采取一些新方法,即使是使用垃圾收集器的语言,也可能会不必要地占据你的执行时间。 您可能还有内存泄漏,这意味着您未返回池中的动态内存量会随着时间的推移而稳步增长。 如果您的应用程序运行了很长时间,那也同样糟糕。

我使用random-pausing方法进行性能诊断,但这对于查找内存泄漏毫无价值。 这就是Memory Profileing应该提供的帮助。

以下是我过去使用MFC发现内存泄漏的方法。 在调试版本中,当我关闭应用程序时,它会打印所有未收集的内存块的列表及其类类型。 然后我查看这些块的创建位置,并尝试找出它们未被删除或收集的原因。 如果我可以捕获每个块上的堆栈跟踪会更有用,所以我可以告诉哪个new语句成功,堆栈可以告诉我原因。 关键是,我可以分配100个Foo类块,并删除其中的99个。 我不删除的是问题,因此了解它的来源更有用。 我不知道内存分析器是否可以这样做。