Jvm内存总结

 

对于不同的Jvm及不同的jdk版本内存模型不同

内存区域名称作用参数异常分析方法解决方案
Heap 堆内存 存储对象 -Xms -Xmx Java.lang.OutOfMemeoryError:Java heap space 使用内存分析工具查看问题 1.调大-Xmx,2.优化代码
Method Area 方法区 1.加载的类信息,2.常量,3.静态变量,4.编译后代码 -XX:PermSize -XX:MaxPermSize Java.lang.OutOfMemoryError: PermGen space 使用内存分析工具查看问题 1.调大-XX:MaxPermSize,2.优化代码
VM Stack 虚拟机栈 1.局部基本数据类型,2.局部变量引用 -Xss StackOverflowError(很少出现):栈深度过大;OutOfMemoryError:拓展栈申请不到内存 Jstack分析 1.调小-Xss,2调小-Xms -Xmx,3.优化代码,4.调大操作系统对jvm分配的内存(栈最大内存=操作系统分配内存-堆内存-方法区)
Native Method Statck 本地方法栈 Native方法服务        
Program Counter Register 程序计数器 下一条程序指令的字节码

注1:有写错地方欢迎指出,也欢迎补充
注2:Swap内存占满的问题遇到过,但是没搞定

原文地址:https://www.cnblogs.com/shoshana-kong/p/11316314.html