JVM内存模型
2021-09-23 16:48:17 5 举报
JVM内存模型与内存管理
作者其他创作
大纲/内容
程序计数器(Program Counter Register)
对象
存储对象自身运行时数据(Mark Word)
老年代
From
当前栈帧
用户线程
暂停所有用户线程
单线程
并发清理
1
栈帧n
时间长
5.对象的内存结构
JIT
重置线程
Eden
完成出口
4.虚拟机中对象的创建过程
To
线程持有的锁
HelloWorld.class
若为对象数组,还应有记录数组长度的数据
8.CMS垃圾回收器工作流程
CPU2
本地方法栈(Native Method Stack)
JVM
局部变量表
检查加载
CPU3
CPU1
运行时数据区(内存)
动态连接
偏向线程ID
1.JVM的运行过程
G1
线程共享
解释执行
设置
哈希码
HelloWorld.java
分配内存
SerialOld
栈帧0
对齐填充
ParallelOld
Major GC/Old GC
用户和GC同时运行
ParNew
类加载
虚拟机栈(VM Stack)
线程
虚拟机栈
复制算法
JVM遇到一条字节码new指令
标记整理算法
Tenured
对象头
堆(Heap)
划分内存:指针碰撞、空闲列表并发安全问题:CAS加失败重试、本地线程分配缓冲
类型指针
新生代
并发标记
3.线程的栈帧结构
方法区
Serial
CPU0
重新标记
内存空间初始化
javac编译
操作数栈
标记清除算法
8
对象初始化
7.常见的垃圾收集器
失败
程序计数器
GC分代年龄
新生代(1/3)
老年代(2/3)
JAVA类加载器ClassLoader
方法区(Method Area)
多线程
垃圾回收器
时间短
锁状态标识
初始标记
6.垃圾分代收集理论
CMS
2.运行时数据区
实例数据
偏向时间戳
minor GC/Young GC
ParallelScavenge
操作系统(接口)
...
执行引擎
线程独享
0 条评论
回复 删除
下一页