java - Java内存分析工具和内存泄漏检测工具有什么区别?

标签 java memory-leaks

Java 内存分析工具(像 Yourkit Java Profiler 这样的分析器)和 Java 内存泄漏检测工具之间有什么区别吗? (根据我的搜索,很难注意到所关注的工具之间的差异,但对我来说这听起来像是方法方式上的差异)。 如果有,是否有任何免费(可供下载)的内存泄漏检测工具(不是内存分析)?提前致谢!

最佳答案

严格来说,Java 中不存在 C/C++ 意义上的内存泄漏:没有更多引用的内存分配。

所以当术语“泄漏”在java上下文中使用时,有时它只是表示一个大的内存结构。一些工具称它们为“泄漏嫌疑犯”,因为它们无法判断内存结构是否由于问题的性质或错误而很大。

有时“泄漏”在动态意义上使用:一种随时间增长的内存结构。

因此,首先,您需要一个内存工具,它可以让您对 Java 堆转储快照中的内存分布和 referer 结构进行定量概览。有了它,您就可以通过比较两个或多个快照来研究动态行为。

如果这些工具提供额外的“Leak-Feature”(JProbe 的 Memory-Leak-Doctor、Eclipse-MATs Memory-Leak Report),则表明它们首先在呈现内存结构的真正全面 View 方面存在问题。

如果您正在寻找免费下载,请查看

http://eclipse.org/mat/

http://dr-brenschede.de/bheapsampler/

关于java - Java内存分析工具和内存泄漏检测工具有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108860/

相关文章:

c - 尽管内存已被释放,Valgrind 仍检测到内存泄漏

java - 如何验证Java中的内存泄漏

c# - 内存消耗快速增加,然后下降非常缓慢;内存泄漏?

objective-c - cocoa [[NSWorkspace 共享工作空间] iconForFile :filePath caused memory leaks

c++ - 从函数返回时写入内存

java - LibGDX TextButton - 只要按住它,任何事件都会被重复调用吗?

java - 使用 KDtree 的最近邻

java - 在 ConstraintLayout 中膨胀后定位 ImageButton

java - 解析 SAX 中的特殊字符(&lt、&gt ..etc)

java - 如何在 java 中随机更改窗口背景的颜色?