对于不同的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内存占满的问题遇到过,但是没搞定