JVM异常说明 https://testerhome.com/articles/24259 一文中已介绍了,JVM每个运行时区域——程序计数器 、Java虚拟机栈、本地方法栈、Java堆、方法区、直接内存发生OutOfMemoryError的不同原因和不同错误信息。



Java堆,是线程共享内存,几乎所有的对象实例以及数组都应在堆上分配。如下堆的内存泄漏错误也是我们常常遇到的

java.lang.OutOfMemoryError: Java heap space

工具VisualVM的介绍

使用VisualVM排查堆内存泄漏

  1. 查看GC

    老年代Old和年轻代Eden区在不断增长,几乎已满。Full GC次数增多,内存没有有效释放。这是内存泄漏的明显迹象

  1. 查看系统日志

    已有Full GC的日志,紧接着开始报错OutOfMemoryError

  2. 分析Heap Dump

    导入Dump后,可以看到占用内存最大的类和实例——OOMMonitor类中的placeholder变量





  1. 示例代码
public class OOMMonitor {
static class OOMobject {
public byte[] placeholder = new byte[64 * 1024];
}
public static void fillHeap(int num) throws InterruptedException {
List<OOMobject> list = new ArrayList<OOMobject>();
for (int i = 0; i < num; i++) {
//稍作延时,令监视曲线的变化更加明显
Thread.sleep(500);
list.add(new OOMobject());
System.out.println("Hello World");
}
}
public static void main(String[] args) throws Exception {
fillHeap(1000);
}
}
  1. 示例VM配置参数
-Xms20m
-Xmx20m
-verbose:gc
-XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/data/heapdump.hprof

扫一扫,关注我

最新文章

  1. selenium操作隐藏的元素
  2. linux command
  3. 微小企业中Sqlserver2000服务器的日常备份与恢复
  4. 谈谈JavaScript MVC模式
  5. 【Gym 100971A】Treasure Island
  6. 织梦DedeCMS首页调用单页文档内容的方法
  7. js树目录结构
  8. dotnet il editor 调试 iis 程序
  9. Java Web编程的主要组件技术——Hibernate入门
  10. C#当中的多线程_任务并行库(上)
  11. vs2013 使用vs调试器,发现调试器显示的数据错误。查看内存,发现内存是正确的。
  12. Flyweight 模式
  13. sql tran, c# SqlTransaction , TransactionScope 的用法
  14. html和html5学习
  15. [转载] TCP长连接与短连接的区别
  16. ASP.NET Aries 高级开发教程:使用存储过程(番外篇)
  17. 粉红色界面的vscode,程序媛的必备利器
  18. OCP 062考试题库2019年新出现的考题-17
  19. UVa 11134 Fabled Rooks (贪心+问题分解)
  20. Docker持久化存储与数据共享

热门文章

  1. 报错:The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.
  2. PowerPC-object与elf中的符号引用
  3. Rocket - diplomacy - ValName
  4. java实现黄金分割数
  5. 逐行解读HashMap源码
  6. 手把手教你用redis实现一个简单的mq消息队列(java)
  7. QingStor 对象存储架构设计及最佳实践
  8. 实验五shell脚本编程
  9. 关于vue不能像angular深度克隆数据解决办法
  10. Photoshop 使用过程中遇到的问题