如何在java中监控应用程序信息?
我希望看到像我的简单类创建的堆上的对象这样的东西。然而,当我使用netbeans profiler查看我正在运行的程序时,我看到了数千个类,大概是java在幕后所做的所有好事 在netbeans profiler中是否有一种方法可以深入到仅我的线程以及可以从我的线程访问的对象的详细信息?有没有其他的工具对这一点有好处 例如,我希望能够看到我是否正在创建任何大型的、不必要的对象,我的对象占用了多少内存,诸如此类的事情如何在java中监控应用程序信息?,java,performance,monitoring,jmx,Java,Performance,Monitoring,Jmx,我希望看到像我的简单类创建的堆上的对象这样的东西。然而,当我使用netbeans profiler查看我正在运行的程序时,我看到了数千个类,大概是java在幕后所做的所有好事 在netbeans profiler中是否有一种方法可以深入到仅我的线程以及可以从我的线程访问的对象的详细信息?有没有其他的工具对这一点有好处 例如,我希望能够看到我是否正在创建任何大型的、不必要的对象,我的对象占用了多少内存,诸如此类的事情 我对mac/linux特别感兴趣。底部有一个文本框,您可以在其中过滤正在检查的类
我对mac/linux特别感兴趣。底部有一个文本框,您可以在其中过滤正在检查的类。在这里,您应该填写要检查的类的完整名称 (很抱歉,找不到更精确的图像,但相同的文本框显示在内存部分)
下面是另一个显示文本框的图像,上面的文本很清楚:类名过滤器。只需编写
complete.nameof.YourClass
,它就会显示必要的信息
(来源:)我对NetBeans Profiler了解不多,但我对工具有一些其他建议,因为我与它们一起工作,所以我对这些工具了解得更多 如果您仍然使用JDK 6,那么可以使用JRockit任务控制中的内存泄漏分析器工具
否则可能是MAT或Java飞行记录器(Java任务控制)太好了-谢谢!如果我在我的类中分配一个ArrayList,我如何将它与其他线程(如垃圾收集)分配的所有其他ArrayList分开?有没有办法通过变量名来识别对象?例如@user384842在运行时您无法知道变量的名称。所以,不可能从剖析器中知道这些信息。