1 堆 -XX:+HeapDumpOnOutOfMemoryError
分析dump出的堆转储快照,确定是否有内存泄漏,不存在是否可调节参数如-Xmx,分析是否对象真的需要存在这么长时间
2 jvm栈和native栈
单线程永远sof,
多线程 可能sof,也可能oom(-Xss越大,越容易出现,操作系统内存-堆-方法区=-Xss * 线程数量,大概估算)
3 方法区,运行时常量池
String.intern()方法,在1.7常量池入堆后,常量池可记录首次出现的引用,堆对象和常量池对象可以相等(以前不可能的)
类加载太多(cglib,jsp)导致方法区溢出
4直接内存
-XX:MaxDirectMemorySize
OOM说明
于 2018-12-19 15:55:23 首次发布