问题描述
我正在尝试解决在UNIX上运行的独立Java程序的内存泄漏问题.我已经设置了端口和参数,这样我就可以使用带有JConsole或VisualVM的JMX连接到它了.
I am trying to pin down a memory leak problem for my standalone Java program that runs on unix. I have the port and params setup such that I can connect to it using JMX with JConsole or VisualVM already.
那些帮助有一点,但是不幸的是,它并不能告诉您内存的去向,只能告诉您使用了多少内存.我正在寻找更详细的探查器,以帮助我找到占用内存的对象.有人有想法么?最好在JMX端口上进行通讯,这样我就不必重新配置该程序.谢谢!
Those help a little but unfortunately it doesn't tell you where the memory has gone, it only tells you how much memory is used. I'm looking for a more detailed profiler to help me locate the objects that is eating up my memory. Anyone have any ideas? Preferably one that talks on JMX port so I don't have to reconfig the program. Thanks!
推荐答案
如果有问题的计算机安装了X11客户端库,可访问的ssh服务器(允许进行X11转发)以及在本地计算机上运行的X11服务器(也许 http://sourceforge.net/projects/xming/) 并且使用Sun Java 6u10或更高版本,可以将ssh(使用-X或-Y)插入Linux框中,并运行jvisualvm there ,同时在本地计算机上显示其GUI界面.
If the machine in question have the X11 client libraries installed, AND a reachable ssh server which allows X11 forwarding, AND an X11 server running on your local machine (perhaps http://sourceforge.net/projects/xming/) AND you use a Sun Java 6u10 or later, you can ssh (with either -X or -Y) into the Linux box, and run jvisualvm there while showing its GUI-interface on your local machine.
在同一台计算机上运行允许jvisualvm直接连接到正在运行的Java进程,而无需进行各种配置的伏都教.
Running on the same machine allows jvisualvm to attach directly to the running Java process instead of doing all kinds of configuration voodoo.
这篇关于是否有Java的远程探查器? (最好使用JMX)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!