V8 垃圾回收器 介绍 [trash talk]
很简单但是容易懂的一篇介绍,跟trash talk一样简单直接。。。(介绍文章的标题就是trash talk)
https://v8.dev/blog/trash-talk
介绍几个GC里面的重要概念。下面的几种GC都是为了提升GC性能。
* 并行GC
Parallel
顾名思义,把GC这个过程,分到N个线程中去做.
* 增量GC
Incremental
在主线程中,把GC分摊,这样不会长时间block主线程。(GC的诟病之一就是会偶尔长时间block主线程)
* 并发GC
Concurrent
conrrent的意思是同时发生的,侧重点在于不同的事情同时发生。(而Parallele侧重同样的事情,同时发生)。
这里就是JavaScript线程和GC线程是同时发生的,GC不阻塞JS主线程。
注意,这三种GC不是说相互排斥的,而是可以同时发生的。如Incremental贯穿整个周期,Full GC(Major GC)可以有Prallel也可以有Concrrent。