jvm内存模型
jvm作用:JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略
平时我们遇到的线上异常有OutOfMemoryError,但是到底是哪块内存溢出,这就需要我们对jvm内存进行深入了解,以便于快速的解决生产故障。
线程独占:程序计数器 本地方法栈 栈
线程共享:堆 方法区
通过一张图来了解如何通过参数来控制各区域的内存大小
图片来自网络
控制参数
-Xms设置堆的最小空间大小。
-Xmx设置堆的最大空间大小。
-XX:NewSize设置新生代最小空间大小。
-XX:MaxNewSize设置新生代最大空间大小。
-XX:PermSize设置永久代最小空间大小。
-XX:MaxPermSize设置永久代最大空间大小。
-Xss设置每个线程的堆栈大小。
没有直接设置老年代的参数,但是可以设置堆空间大小和新生代空间大小两个参数来间接控制。
老年代空间大小&