(追記: 編集あり)
実は結構前に保守的なGCから正確なGCになって いた いなかった。仕組みはマーク・アンド・スィープで変わらないが性能は大幅に向上が期待できそう。
これによって、
- メモリ確保時
- ゴミ集め時
- 並列にスキャンするようになったのでパフォーマンスが向上
- 特定の条件を満たしていればストップ・ザ・ワールド(STW)が発生しなくなる
- 例えば新たに追加された型レベルの仕組み isolated によって静的にスレッドローカルなヒープのみを使っているかを判定(isolatedはスレッドローカルなヒープにつく型といえる)でき、isloatedしかないと判定したときはSTWしない
わりとGoに近い感じで、アロケータの柔軟性でGoより優れていて、インクリメンタルGCによるレイテンシの仕組みはシステムプログラミング言語という特性上入れなかったという感じか。 さすがにJVMに比べると厳しいが、これまでの保守的GCに比べるとずいぶんよくなっている、はず。
(追記ここから)
まだマージされてなかった。。すまんな、、