java内存溢出分析_java内存溢出分析

测试代码

1 packagetest;2

3 importjava.util.LinkedList;4 importjava.util.List;5 importjava.util.UUID;6

7 public classDumpTest {8

9 public static voidmain(String[] args) {10 List s=new LinkedList();11 while (true) {12 s.add(UUID.randomUUID().toString());13 }14 }15 }

配置测试用jvm参数

26fb607aa62dc398324ba9f3acdbd5d3.png

-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:\test.hprof

说明

HeapDumpOnOutOfMemoryError 内存溢出时dump文件保存在HeapDumpPath指定的位置,-XX:HeapDumpPath=/usr/local/tomcat 这样可以只指定保持的目录

-Xms20m 指定JVM初始内存为20m,-Xmx20m 指定JVM最大可用内存为20m

运行结果

a3778251701fa642f0272a0d4dd9d69e.png

软件准备

下载Eclipse Memory Analyzer 并解压, 地址 http://www.eclipse.org/mat/downloads.php

使用Eclipse Memory Analyzer打开d:\test.hprof文件

12af931a470a090c889d8f8c7290edbc.png

点击Finish之后生成分析报告

18997505941e008a6c3177a503dd3d67.png

也可以使用jmap命令导出dump信息

linux# jmap -dump:file=/usr/local/tomcat/tomcat_8082/dumpfile01.hprof  12055

其中 12055 是进程号可以使用jps命令查看java进程信息

acd915aa9c258eefd6f5bbfc83f275bc.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值