CODY

CODY 关注TA

一坑未平,一坑起

CODY

CODY

关注TA

一坑未平,一坑起

  •  深圳南山
  • java酱油党
  • 写了59,448字

该文章投稿至Nemo社区   Java  板块 复制链接


Automation PO memory overflow

发布于 2019/05/23 17:07 1,136浏览 0回复 482

通过Java jdk 自带的jvisualvm工具监控应用的CPU、内存、线程、等状态与消耗情况并生成Dump文件,通过Dump文件可分析出具体的堆栈信息从而定位到Java代码。

1、 首先运行PoAutomation应用,确保应用可使用,然后打开jvisualvm 工具

2、 通过本地连接上PoAutomation应用,在通过抽样器抽样内存使用情况

3、 使用PoAutomation应用中的功能,查看内存使用情况,待内存上升到峰值时点击堆Dump生成Dump文件,通过 MemoryAnalyzer工具开打并分析具体情况

4、 现在MemoryAnalyzer工具,并打开刚刚生成的Dump文件

5、 点击Leak Suspects 

6、 此时显示的就是消耗内存最多的线程中信息,点击Details 可查看具体的堆栈信息,可以发现两个超大的集合以及堆栈调用顺序

7、 更具上述步骤分析可锁定PoAutomation代码

8、 将55、57行循环创建对象产生大量对象咱用内存,以及51行代码拖出循环体外,避免循环读取全量配置文件内容减少IO开销、降低内存消耗。



本文标签
 {{tag}}
点了个评