JVM_02_0内存模型深度剖析与优化
2023-03-17 10:30:29 0 举报
JVM_02_0内存模型深度剖析与优化
作者其他创作
大纲/内容
S11/10
回来的次数是jvm的分代年龄,默认是15
Survivor区
操作树栈
Test test = new Test()空的内存空间,存放地址
Eden区8/10
局部变量表
线程独有
FULLGCSTW
-XX:MaxMetaspaceSize: 设置元空间最大值, 默认是-1, 即不限制, 或者说只受限于本地内存大小。
堆
线程2
线程1
栈桢compute()
栈桢main()
a =1;b=2;
线程栈
满了
S01/10
达到分代年龄还存活的非垃圾对象
OOM
方法区
常量池运行后变成运行时常量池
程序计数器
字面量在程序运行的时候解析,寻找对应的内存位置,把符号引用转换为符号引用的地址
运行时数据区
本地Native方法(C语言)
方法出口
年轻代
-XX:MetaspaceSize: 指定元空间触发Fullgc的初始阈值(元空间无固定初始大小), 以字节为单位,默认是21M左右
线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常
栈桢一个方法()对应一块栈桢
本地方法栈
-Xmx:设置堆的最大可用大小,默认物理内存的1/4
静态变量常量类源信息
栈
动态链接
minorGC
老年代
寻址
-Xmn:新生代大小
-Xms:设置堆的初始可用大小,默认物理内存的1/64
1fullGC停止所有线程STW2.;老年代也无法回收---》OOM
-Xss设置越小count值越小,说明一个线程栈里能分配的栈帧就越少,但是对JVM整体来说能开启的线程数会更多
TEST对象
-Xss:每个线程的栈大小
达到元空间值就会触发full gc进行类型卸载, 同时收集器会对该值进行调整: 如果释放了大量的空间, 就适当降低该值; 如果释放了很少的空间, 那么在不超过MaxMetaspaceSize(如果设置了的话) 的情况下, 适当提高该值
字节码执行引擎
元空间(1.7永久代)
类加载子系统
0 条评论
下一页