visualVM监控JVM

一.情况

本次接到订单导出的需求,订单表数据量巨大,目前数据库大约有几十万数据。导出时经常内存溢出,堆大小不够用,指定-Xmx后决定监控JVM内存变化。

简介:除了JDK自带的jinfo jtsatus jmap等自带监控工具,visualVM是一款图形化监控JVM堆、类、线程、CPU的工具。

二.思路与实现

思路:调用导出订单方法,实时监控本机堆内存变化。

实现:导出17W订单量,打开visualVM监控堆内存变化。可以看到CPU使用率变化,以及GC发生时间点和堆内存的变化,和消耗的堆峰值,消耗了大约800M内存。


xiangfa1

导出90W订单量消耗了大约3g内存,必须优化。查询时间后看到使用的堆变大,因为此时查询对象映射为对应的实体耗费许多内存,用的excel,生成许多大对象。


三.总结

优化方案

1.使用CVS

2.分时间分量导出合成数据文件。

你可能感兴趣的:(visualVM监控JVM)