我使用NetBeans和VisualVM运行内存Profiler,并收到结果,但是没有一个线索如何分析其结果,我研究了这个
article,但它没有教导或给出如何解释结果的线索.
我还发现了这个article关于Netbeans 4的解释结果,但是我正在寻找一个有更多细节的文章,或者是一种解释以下结果来学习的方法.
解决方法
在您的问题中粘贴的遥测图中没有太多的信息传达.
传达的是什么
>你的程序被监视了大约3分钟
>您的堆利用率略低于200mb(没什么特别的)
>你有大约90个线程(这必须是一个应用服务器)
>您在GC(正常)中平均花费少于5%
我打赌在内存显示器中传送的锯齿图案是您的程序启动 – 否则为什么在最后一分钟左右的事情似乎能够平滑其他.在您的问题显示的3分钟内您的申请是否在任何负载下?
作为一个起点,当您的程序正在做一些重大的改进时,我会看看您的程序在GC(GC中的相对时间)中花费了多少时间.如果超过5%,您可以考虑调整堆或进一步挖掘,以确定发生分配的位置.
接下来我会寻找一个瓶颈.了解您的应用程序大部分时间在哪里,看看您是否可以以某种方式优化该代码.