什么是好的java调试器?

什么是好的java调试器?,java,performance,debugging,memory,memory-leaks,Java,Performance,Debugging,Memory,Memory Leaks,我正在尝试查找java应用程序的内存泄漏和性能问题。是否有一个程序可以帮助我调试应用程序并显示性能结果 谢谢。看看JDK中的jvisualvm—Netbeans探查器的子集—它可以连接到正在运行的Java 6进程,并允许您对其进行评测和内存分析 Eclipse有一个很好的内存转储分析器;但是查找内存泄漏可能非常困难,需要深入研究应用程序分配对象的方式 我花了整整两天的时间才发现我的一个定制JTable cell editor类在实例化时分配了一个JDialog,而实际上没有打开它,对话框的本机部

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


谢谢。

看看JDK中的jvisualvm—Netbeans探查器的子集—它可以连接到正在运行的Java 6进程,并允许您对其进行评测和内存分析


Eclipse有一个很好的内存转储分析器;但是查找内存泄漏可能非常困难,需要深入研究应用程序分配对象的方式


我花了整整两天的时间才发现我的一个定制JTable cell editor类在实例化时分配了一个JDialog,而实际上没有打开它,对话框的本机部分将cell editor实例锁定,因此表,因此,屏幕以及与之相关的所有实体对象。

我使用了很多工具来找出为什么我的程序占用了100+Mb的ram,并对代码进行了润色以消除任何可能的内存泄漏。后来我发现,一旦jvm从操作系统中获取了一些内存,我并不总是返回它,即使没有使用该内存,这通常看起来像是内存泄漏。这取决于-Xmx和-XX:MaxHeapFreeRatio。我将Xmx设置为40,这大概是我的应用程序应该使用的内存量,内存使用量保持在这个范围的10-15MB之内,而不是失控地增加


而且,它是一个很好的工具。它与jdk一起提供。

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


Java应用程序性能与JVM运行应用程序的方式成正比。这个工具提供了关于JVM的非常好的评测信息。但是它不是一个图形工具,您需要浏览生成的文本文件。但这是一次性的工作,您可以使用此工具。我多次使用它解决与性能相关的问题,它对我帮助很大。

您当前使用的哪些工具不适合您的需要?Eclipse。我试图使用一个内存插件,但我就是不能让它工作。因此,我正在寻找一个更专业的应用程序,而不是一个简单的插件。您可能想将标题改为“什么是好的Java profiler?”——因为传统的调试器通常更适合诊断控制流和逻辑错误,而profiler更适合诊断内存泄漏和性能问题。是的。JVisualVM绝对是在Java中可视化和调试内存泄漏的最佳工具。不一定,但作为JDK的一部分,它是一个很好的起点。@Kyle,欢迎您。JDK中有更多的工具很好地了解,但它们比visualvm更低级。