go的GC垃圾回收机制

Go 语言中的垃圾回收(GC,Garbage Collection)主要采用了并发标记-清除法,并结合混合写屏障(write barrier)和三色标记法 技术来实现垃圾回收。

Go 的垃圾回收器是并发的,而且在程序运行过程中可以让 GC 和应用程序一起工作,从而最大限度地减少对应用的影响。

简而言之,Go 语言的 GC 过程如下:

  • 标记阶段(Marking Phase):从根对象(如全局变量、栈上变量等)出发,递归遍历所有可达对象,并将其标记为存活。
  • 清除阶段(Sweeping Phase):清除那些未被标记的对象。
  • 压缩阶段(Compaction Phase,某些版本不使用):调整堆中的对象以减少内存碎片(部分 GC 实现中可能包含)。

你可能感兴趣的:(java,jvm,算法)