什么是好的java调试器?

时间:2010-08-28 06:03:05

标签: java performance debugging memory memory-leaks

我正在尝试使用我的java应用程序查找内存泄漏和性能问题。是否有一个程序可以帮助我调试我的应用程序并显示性能结果?

感谢。

4 个答案:

答案 0 :(得分:4)

查看JDK中的jvisualvm - Netbeans探查器的一个子集 - 它可以附加到正在运行的Java 6进程,并允许您对其进行概要分析并进行内存分析。

https://visualvm.dev.java.net/gettingstarted.html

答案 1 :(得分:1)

我使用了很多工具来查找为什么我的程序吃了100多Mb的ram,抛光代码以消除任何可能的内存泄漏。后来我发现,一旦jvm从操作系统中获取了一些内存,我并不总是返回它,即使没有使用该内存,这通常看起来像是内存泄漏。这取决于-Xmx和-XX:MaxHeapFreeRatio。我将Xmx设置为40,这大约是我的应用程序应该使用多少内存,并且内存使用率保持在此范围的10-15 Mb之内,而不是无法控制地增加。

此外,jconsole是一个很棒的工具。它带有jdk。

答案 2 :(得分:0)

Eclipse有一个很好的内存转储分析器;但是发现内存泄漏可能非常具有挑战性,需要您深入了解应用程序分配对象的方式。

我花了整整2天才发现我的一个自定义JTable单元格编辑器类在实例化时分配了一个JDialog,而没有实际打开它,并且对话框的原生部分保持单元格编辑器实例被锁定,因此表格,因此屏幕以及与之相关的所有实体对象。

答案 3 :(得分:0)

您可以尝试使用性能检查工具。以下是URL。

http://perfinsp.sourceforge.net/

Java应用程序性能与JVM运行应用程序的方式成正比。这个工具提供了很好的关于JVM的分析信息。但它不是一个图形工具,你需要通过生成的文本文件。但它的一次性努力,你可以使用这个工具。我用了很多时间来解决与性能相关的问题,这对我帮助很大。