从线上服务器已获取到堆栈文件,java_pid28439.hprof。
一开始使用 [fastThread](https://heaphero.io/ft-index.jsp)在线分析工具,或者 [GCeasy](https://gceasy.io/index.jsp)。
但由于文件大小 > 1G,无法使用。
于是下载了JProfiler,试用10天。
发现 byte[]占用3200MB,内存占用共 4370MB。而服务器最大内存是4G,导致内存溢出。
查看最大对象:
分析最大对象引用:
使用选定对象:
传入引用:
右键显示节点详细信息,查看堆栈:
分析调用链,定位业务代码。 发现是一个Dubbo接口,根据id查询实体对象,id数很多,加载的记录数多。表的数据量在150w左右。
另[JDBC 基本流程源码分析](https://segmentfault.com/a/1190000040580622)
标签:https,内存,io,堆栈,数据,id,溢出 From: https://www.cnblogs.com/parkdifferent/p/17030700.html