OOM与调优实例

1、OOM异常(OutOfMemoryError)

如图一,Java虚拟机栈、本地方法栈、Java堆、方法区、直接内存都有可能抛出OOM异常。每个区的异常诊断和处理方法都不一样。

1.1、Java虚拟机栈和本地方法栈

异常信息:

1
2
java.lang.OutOfMemoryError:Java heap space
...

解决方法:

  • 虚拟机参数:-XX:+HeapDumpOnOutOfMemoryError,让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照来分析;
  • 使用内存映像分析工具分析堆转储快照,确认内存中的对象是否必要 TODO

1.2、Java堆

1.3、方法区和运行时常量池

1.4、直接内存

arthinking wechat
欢迎关注itzhai公众号,获取更多最新的文章
  • 本文作者: arthinking
  • 本文链接: java-oom-and-jvm-tuning.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!