对象分配过程图
2021-03-02 13:51:49 0 举报
对象在jvm中的分配过程图
作者其他创作
大纲/内容
N
栈?
S2
栈
Y
否
满足条件:1. new出的对象不会溢出(逃逸),不会被其他线程所访问到(反之必须在堆内存)2. 可以进行标量替换JVM 参数 -XX:+DoEscapeAnalysis & -XX:+EliminateAllocations
Thread Local Allocation Buffer1. 什么叫线程本地分配?不管符不符合线程本地分配,都是要分配到Eden区的。多个线程往Eden分配分配的时候存在自旋锁的竞争,效率偏低。所以JVM做了相关优化。每个线程有一些有一块独有的空间,如果对象不大,直接先往线程本地独有的空间里分配,如果线程本地空间分配不下了,往Eden区分配
POP
End
大?
Eden
AGE
NEW
1. S1回收一次,如果没被回收掉,判断年龄,年龄达到了,直接进入老年代。年龄未达到,年龄+1并进入S2。S2同上步骤进入S12. 分代年龄存在markword 4bitPS+PO 最大15(1111)CMS 最大6
FGC
start
S1
TLAB
Old
GC清除
0 条评论
下一页