Memory 内存分析的使用

Memory 内存分析的使用,memory,profiling,Memory,Profiling,内存分析的意义是什么 它是否提供了内存的统计信息,比如内存利用率 这里面有什么不同的类型吗?问题是,您可能正在使用许多新的ing方法,即使在使用垃圾收集器的语言中,这些方法也可能不必要地支配您的执行时间。 您还可能存在内存泄漏,这意味着不返回池的动态内存量会随着时间的推移而稳步增长。 如果你的应用程序运行很长时间,那同样糟糕 我使用该方法进行性能诊断,但这对于查找内存泄漏没有价值。 这就是内存分析应该提供的帮助 下面是我过去使用MFC发现内存泄漏的方法。 在调试构建中,当我关闭应用程序时,它会打

内存分析的意义是什么

它是否提供了内存的统计信息,比如内存利用率


这里面有什么不同的类型吗?

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

我使用该方法进行性能诊断,但这对于查找内存泄漏没有价值。 这就是内存分析应该提供的帮助

下面是我过去使用MFC发现内存泄漏的方法。 在调试构建中,当我关闭应用程序时,它会打印所有未收集内存块的列表,以及它们的类类型。 然后我查看这些块是在哪里创建的,并试图找出它们为什么没有被删除或收集。 如果我能在每个块上捕获一个堆栈跟踪,这样我就可以知道是哪个新语句生成的,堆栈也可以告诉我为什么。 关键是,我可以分配100个Foo类块,然后删除其中99个。 我没有删除的是这个问题,所以了解更多关于它来自哪里的信息会很有用。
我不知道内存探查器是否能做到这一点。

例如,如果您正在调试一个应用程序,而该应用程序分配内存来创建结构,或者取消分配内存来释放未使用的结构,您可能想知道哪些结构正在使用多少内存,您可能想实时监控这些信息,例如,避免由于编程错误而消耗所有可用内存。