增量式垃圾回收(Incremental GC)是一種通過逐漸推進垃圾回收來控制 mutator 最大暫停時間的方法。
通常的 GC 處理很繁重,一旦 GC 開始執行,不過多久 mutator 就沒法執行了,這是常有的事。也就是說,GC 本來是從事幕後工作的,可是它卻一下子嚣張起來,害得 mutator 這個主角都沒法發揮作用了。我們将像這樣的在執行時害得 mutator 完全停止運作的 GC 叫作停止型 GC 。停止型 GC 的示意圖如圖 8.1 所示。
根據應用程式(mutator)的用途不同,有時停止型 GC 是很要命的。
是以人們想出了增量式垃圾回收這種方法。增量(incremental)這個詞有“慢慢發生變化”的意思。就如它的名字一樣,增量式垃圾回收是将 GC 和 mutator 一點點交替運作的手法。增量式垃圾回收的示意圖如圖 8.2 所示。
本文整理自:《垃圾回收的算法與實作》
個人微信公衆号: