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。

 

posted @ 2020-12-10 11:49  xuyv  阅读(172)  评论(0编辑  收藏  举报