タグ

GCに関するmkusakaのブックマーク (5)

  • mmap直確保でGoのGC負荷を低減する - Mirrativ Tech Blog

    インフラ・ストリーミングチーム インターンの八谷です。 記事では、ガベージコレクション(GC)への負荷を低減することを目的として、Go言語でのメモリ確保時にOSから直接mmap領域を確保する手法と、make関数でランタイムから領域を確保する場合でのGC負荷などの比較を行います。結果としては、mmap領域を直接確保することでGCが走査するオブジェクト数を削減でき、それに伴ってアプリケーションの停止(Stop-The-World)時間を短縮できることがわかりました。 前提知識1: Goにおけるメモリ管理 Goのランタイムでは、起動時や必要に応じてOSから64MB単位の領域をあらかじめ確保し、それを管理しています。Goでメモリ領域の確保を行う際、一般的にはmakeやnew関数、&T{}といった表現を用いますが、この時にはランタイムの管理下の領域から必要なサイズが切り出され、アプリケーションに割

    mmap直確保でGoのGC負荷を低減する - Mirrativ Tech Blog
    mkusaka
    mkusaka 2026/04/07
    Goで大きなメモリをmakeで確保せずOSのmmap直確保にし、GC走査やSTWを抑える比較と評価を解説。
  • Go 1.26の新GC「Green Tea(緑茶)」解説 | フューチャー技術ブログ

    Green Tea GCの開発タイムライン(出典: Go公式ブログ) はじめにGo 1.26 リリース連載の 4 目です。 Go 1.26 がリリースされ、ガベージコレクタ(GC)に大きな変更が加わりました。その名も Green Tea GC(緑茶GC)です。 公式ブログによると、この名前は2024年にGoランタイムチームのAustinが日でカフェ巡りをしながら、大量の抹茶を飲みつつプロトタイプを開発したことに由来しているそうです。 Green Tea got its name in 2024 when Austin worked out a prototype of an earlier version while cafe crawling in Japan and drinking LOTS of matcha! This prototype showed that the co

    Go 1.26の新GC「Green Tea(緑茶)」解説 | フューチャー技術ブログ
    mkusaka
    mkusaka 2026/01/30
    Go 1.26のGreen Tea GCを解説。ページ(スパン)単位とFIFOキューでメモリアクセスを改善し、10〜40%のGCオーバーヘッド削減やAVX-512対応を説明します。
  • 歴史から学ぶ、Goのメモリ管理基礎

    2026/1/9 BuriKaigi 2026にて登壇した際の資料です。

    歴史から学ぶ、Goのメモリ管理基礎
    mkusaka
    mkusaka 2026/01/09
    Goのメモリ管理を歴史的に解説:ヒープエスケープ・ゼロアロケーションやGOGC等を扱い、フィルタ改善でCPU使用率57%・メモリ使用量99%削減事例を紹介
  • Go 1.26 interactive tour

    Go 1.26 is coming out in February, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is. Read on and see! new(expr) • Recursive type constraints • Type-safe error checking • Green Tea GC • Faster cgo and syscalls • Faster memory allocation • Vectorized o

    Go 1.26 interactive tour
    mkusaka
    mkusaka 2026/01/06
    Go 1.26の新機能をインタラクティブに体験、new(expr)やerrors.AsType、GC高速化などを実例付きで解説
  • Go 1.26 は、軽くなり速くなる

    はじめに この記事は Go Advent Calendar 2025、最終日 25 日目の記事です。 今年も皆さんお疲れ様でした。Go 1.26 がまもなくリリースされます。今回のリリースは派手さは無いにしろ、Go を使っておられる皆さんにとってはとても大きなリリースになるんじゃないかと思っています。 短い文章で言えば「軽くなり」「速くなる」です。 パフォーマンスに関する大きな変更2つ Green Tea GC Go 1.25 まで実験的に導入された Green Tea GC が 1.26 でデフォルトで導入されました。 これまで Go には数多くの GC 実装が取り込まれてきました。それぞれの GC により細かなチューニングがされ、パフォーマンス改善が行われました。 これまでの GC は、ヒープ上のオブジェクトへのポインタを追跡して個別にマークしていました。その結果メモリアクセスがランダ

    Go 1.26 は、軽くなり速くなる
    mkusaka
    mkusaka 2025/12/25
    Go1.26でGreen Tea GCがデフォルト化しGCオーバーヘッドが10〜40%削減、syscall が約30%高速化されます。
  • 1