Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Green Tea GCの動作を紙芝居にしてみる

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for uji uji
September 04, 2025
140

Green Tea GCの動作を紙芝居にしてみる

Avatar for uji

uji

September 04, 2025
Tweet

More Decks by uji

Transcript

  1. ⾃⼰紹介 • 名前: uji • 神⼾市在住 • NOT A HOTEL

    所属 • Gopher 7年⽣ • KOBE.go, Kyoto.go 運営 https://twitter.com/uji_rb
  2. 1. Mark 2. Mark termination 3. Sweep 4. Sweep termination

    terminationの際、アプリケーションは停⽌ GCの動作の流れ https://github.com/golang/go/blob/master/src/runtime/mgc.go
  3. • Go 1.25 に実験的に導⼊された新しいGCアルゴリズム • 「局所性」の問題を解決する⽬的で作られた ◦ 空間的局所性(メモリ内の全く異なる領域間を⾶び回る) ◦ 時間的局所性(同じメモリへの⾮効率的なアクセス)

    • 実⾏時間の平均85%がグラフ探索のスキャンループに消費 その35%以上は、メモリからのデータが読み込みを待っている • spanと呼ばれる単位でスキャンとMarkを⾏う Green Tea GC とは? https://github.com/golang/go/issues/73581
  4. Green Tea GCのMark Stack Heap 代 表 代 表 代

    表 代表オブジェクト以外にもアクセスされている場合 span内のオブジェクトを全てスキャン対象にする(ヒットフラグ👊が⽴つ)
  5. Green Tea GCのMark Stack Heap 代 表 代 表 代

    表 スキャンが終わったspanは黒に メモリ領域が近いオブジェクトを効率的にスキャンできる