内存占用过大排查
# 查看gc信息
jstat -gc <PID>
1
发现老年代占用过大
# 查看堆内存对象统计信息
jmap -histo <PID> | head -n 20
1
发现有大量的HashMap$Node
和JSONArray
对象
# 转储堆内存到文件
jmap -dump:format=b,file=head_dump.hprof <PID>
1
jmap -dump:format=b,file=stock_head_dump_0212_1.hprof 7
# 使用 JProfiler 分析堆内存文件
通过最大对象
选项查看占用内存最多的对象
点击该对象右键选择使用选定对象
,选择引用->传入引用
查看该对象的引用链
根据堆栈信息定位到代码中的问题
编辑 (opens new window)
上次更新: 2025/02/23, 05:03:32