当前位置:网站首页>zgc 并发标识和并发转移阶段的多视图地址映射
zgc 并发标识和并发转移阶段的多视图地址映射
2022-06-12 21:17:00 【lixia0417mul2】
M0,M1,Remapped三种多视图地址映射是zgc能够实现并发标识和并发转移的关键前提,这三种地址其实都对应到同一个物理地址,对应的是同一个底层的对象,大体上zgc过程中的地址映射变换关系如下:
第一轮的zgc:
1.初始标识阶段
初始标识阶段对象的地址视图都是Remapped
2.并发标识阶段
存活对象的地址从Remapped地址变成M0地址,非存活对象的地址依然保持为Remapped映射阶段,这个阶段中新分配对象的地址视图是M0
3.并发转移阶段
存活对象(地址视图是M0)被转移到新的地址空间并重新标识为Remapped地址视图,非存活对象(地址视图是Remapped)会被垃圾回收,这个阶段中新分配的对象的地址视图为Remapped
第二轮的zgc:
1.初始标识阶段
初始标识阶段对象的地址视图都是Remapped,或者M0,M0地址视图的原因是有些对象在上一轮并发转移阶段中没有被转移也没有被访问,所以依然保持上一轮并发标识结束后的M0视图.–这里引申出另一层含义,在一轮的zgc中,虽然是对整堆空间进行标记的,但是并不是所有标记的存活对象都被转移,也不是所有的垃圾对象都被回收,对于那些垃圾占比比较小的页面,在一轮的zgc中这些页面中的存活对象不会被转移,垃圾对象也不会被回收.
2.并发标识阶段
存活对象的地址从Remapped/M0地址变成M1地址,非存活对象的地址依然保持为Remapped/M0映射阶段,这个阶段中新分配对象的地址视图是M1
3.并发转移阶段
存活对象(地址视图是M1)被转移到新的地址空间并重新标识为Remapped地址视图,非存活对象(地址视图是Remapped或者M0)会被垃圾回收,这个阶段中新分配的对象的地址视图为Remapped
后面的多轮zgc中,并发标识的对象视图就会在M0和M1中交替轮流使用
此外zgc中多视图映射速度很快,每次从Remapped标识成M0或者M1只需要修改对象地址中的第42位到第45位的值就可以完成地址映射操作,而cms或者g1中标记对象需要访问对象地址所指向的具体对象的对象头,并把对象头中的标志位进行标记,这个过程中涉及访问对象内存,而zgc无需访问对象内存,这也是zgc比较快的原因.
边栏推荐
- What's a good gift for the goddess Festival? Gift recommendation for the goddess Festival on March 8
- 函数的了解
- Access control system based on RFID
- Circularly insert one excel column and the sum of multiple columns
- USB机械键盘改蓝牙键盘
- 做自媒体视频,友好的新媒体运营必备app分享
- How to improve communication efficiency during home office | community essay solicitation
- 好数对的求解
- #141 Linked List Cycle
- EU officially released the data act, Ukraine was attacked by DDoS again, kitchen appliance giant Meiya was attacked, internal data leakage network security weekly
猜你喜欢

Lake shore PT-100 platinum resistance temperature sensor

Teambition 协作应用心得分享|社区征文

EU officially released the data act, Ukraine was attacked by DDoS again, kitchen appliance giant Meiya was attacked, internal data leakage network security weekly

Product Manager: "click here to jump to any page I want to jump" -- decoupling efficiency improving artifact "unified hop routing"

nn. PReLU(planes)

一级指针&二级指针知识点梳理

Successful transition from self-study test halfway, 10K for the first test

Lombok package is successfully installed, but the runtime prompts that get, set method and constructor solution cannot be found

Is it really possible to find a testing job with a monthly income of more than 10000 without a degree and self-study software testing?

#141 Linked List Cycle
随机推荐
冒泡排序
ASCII 码对照表
ASCII code comparison table
JS deep and shallow copy
Compréhension préliminaire des expressions régulières cognitives (regex)
Listener in JSP
Junda technology is applicable to "kestar" intelligent precision air conditioning network monitoring
Research Report on market supply and demand and strategy of China's hydraulic hammer industry
初步了解认识正则表达式(Regex)
Simplest ALV template
求解一维数组前缀和
多机房动环状态网络触摸屏监控解决方案
China hydraulic press market trend report, technical innovation and market forecast
GNS安装与配置
Bluetooth for Delphi xe7
The salted fish has been transmitted for 5W times, and the latest spring recruit face-to-face test questions of bytes have been leaked
Understanding of functions
leetcode:207. Class Schedule Card
#113 Path Sum II
ATOI super resolution