衡量Java程序内存使用情况的最佳方法?

ice*_*urn 6 java profiler visualvm measurement memory-consumption

我目前正在使用VisualVM,但我遇到的问题是我无法保存它生成的图形.我需要报告一些有关其内存使用情况和运行时间的数据,但运行时间很容易System.nanoTime().我也尝试过NetBeans探查器,但它不是我想要的,因为我不是在寻找那些会减慢速度的特定部件,所以这样就太过分了.最大的问题是它占用了太多的处理时间.另外,我不能像VisualVM一样轻松捕获/传输数据,至少就我所知.

理想情况下,最好的方法是调用一些方法,因为我可以更容易地获取信息,但是像VisualVM这样的任何实际上让我保存图形的东西都可以.与NetBeans分析器相比,VisualVM的性能也相当不错,但我认为这是因为我没有使用它的分析器.

我目前正在使用Ubuntu,但Windows 7很好.我宁愿有一个专门做这个的程序,因为那些没有的程序得到的信息很可能包含JVM和其他更好的东西.

好吧,显然,您可以保存当前会话的快照并最大化VisualVM中的窗口,这样您就可以使图表更大,拍摄快照并剪切它们......但这是一种黑客行为.更好的建议欢迎.

Aux*_*ary 15

Runtime.getRuntime().freeMemory();

Runtime.getRuntime().totalMemory();
Run Code Online (Sandbox Code Playgroud)


Gop*_*opi 0

尝试JProfiler。虽然它不是免费的,但您可以先尝试评估版。