jvm垃圾回收之JVM GC算法

标记-清除:

image-20210513141600534

标记-压缩

image-20210513141654330

复制算法:

image-20210513142205630

Hotspot分代复制算法

image-20210513142336523

bump-the-pointer和TLABs:

  1. bump-the-pointer:指针碰撞机制会跟踪在eden区创建的最后一个对象,并记录其位置;之后再创建对象,按顺序检查eden空间是否足够,这样每次创建都只需要检查最后一个创建对象。但多线程条件下,就会出现问题,如果加锁,开销太大,因此有了TLABs
  2. TLABs(Thread-Loacl Allocation Buffers):TLAB可以理解为Java的缓冲区,JVM为每个线程在eden区分配的一块内存;每个TLAB都只有一个线程可以操作,TLAB结合bump-the-pointer技术可以实现快速的对象分配,而不需要任何的锁进行同步,也就是说,在对象分配的时候不用锁住整个堆,而只需要在自己的缓冲区分配即可。
posted @ 2022-02-21 22:16  隐风  阅读(63)  评论(0)    收藏  举报