タグ

GCに関するYassLabのブックマーク (3)

  • RubyのPathnameライブラリが本体組み込みになったらGC周りのテスト失敗がおきた - STORES Product Blog

    こんにちは。ruby-devチームの遠藤(@mametter)です。 次期バージョンのRubyでは、pathnameがRuby体組み込みとなり、require "pathname"なしで利用可能になる予定です。 Rubyで書き捨てスクリプトを書いてる自分のような人は地味にうれしいかもしれません。 Feature #17473: Make Pathname to embedded class of Ruby - Ruby - Ruby Issue Tracking System さて、pathnameの組み込みがマージされた直後、非常に興味深いバグが発生しました。 今回はそのデバッグの経緯を技術ブログとして共有したいと思います。 問題の発生:特定環境でのみ失敗するテスト コミッタのhsbtさんがpathnameの組み込み化をマージした後、なぜかRubyのCIの一部が落ちるようになりました。

    RubyのPathnameライブラリが本体組み込みになったらGC周りのテスト失敗がおきた - STORES Product Blog
    YassLab
    YassLab 2025/07/17
    “pathnameの組み込みは、あくまで全体のシンボル数を押し上げるトリガーに過ぎず、根本原因はObjectSpace.count_objectsの挙動にありました。 今回は決定論的に再現可能な問題であったため解析は比較的容易でした”
  • RubyのGVLを消し去りたいあなたへ(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: So You Want To Remove The GVL? | byroot’s blog 原文公開日: 2025/01/29 原著者: byroot -- Railsコアコミッター、Rubyコミッターであり、ShopifyのRuby/Railsインフラチームのシニアスタッフエンジニアです 日語タイトルは内容に即したものにしました。 GVLは「グローバルVMロック」の略ですが、「ジャイアントVMロック」とされることもあります。 参考: Rubyの(グローバル)VMロックをトレースする(翻訳) 参考: スレッド (Ruby 3.4 リファレンスマニュアル) 私がやりたいのは、Pitchforkに関する記事を書いて、これがどんな理由でできたのか、なぜ現在のような形になったのか、そして今後どうなるのかについて説明することです。しかし

    RubyのGVLを消し去りたいあなたへ(翻訳)|TechRacho by BPS株式会社
    YassLab
    YassLab 2025/03/04
    "mark-and-sweep方式のGCではほぼ全てのGCトラッキングデータがオブジェクト自身ではなく外部ビットマップに保存 / CoWとの相性が非常によい / 論点の1つである「メモリ使用量の削減」はRubyの場合はさほど重要ではありません"
  • Rubyのobject_id

    Rubyのobject_idを入口にして、Rubyの実装詳細について学びます。

    Rubyのobject_id
    YassLab
    YassLab 2024/09/09
    “Rubyのobject_id - Rubyのobject_idを入口にして、Rubyの実装詳細について学びます。”
  • 1