タグ

GCとrubyに関するsnjxのブックマーク (3)

  • 【Ruby】Objectのメモリっていつ解放されるの? - Qiita

    僕はRubyからプログラミングを書くようになった現代っ子エンジニアですが、Rubyについて学べば学ぶほど、裏でこんなことが起きてるんだと驚く日々です! ふと思ったんですが もちろん、ブロック内でしか参照できないので、ブロックの実行が終わるごとに消えそうです するとじゃあ、消えるって何なの?ってなります OSには詳しくないですが、多分メモリ上から消えるってことですよね ってことは多分、メモリに書き込むとメモリから消すという動作があるのかなーという予想🪐 Rubyの代入がobject_id渡しってのはご存知の通りとして、 ってことは多分オブジェクトの生成の中でobject_idの確定とメモリの確保(書き込み)があるんだろうなーという予想🪐🪐 一方で、メモリの解放はいつ行われてるんだろう???ブロック終了時に毎回行ってるんかな? ちょっとRubyのメモリ管理について調べます 半信半疑で書い

    【Ruby】Objectのメモリっていつ解放されるの? - Qiita
  • module GC (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 GC は Ruby インタプリタの「ゴミ集め(Garbage Collection)」を制御するモジュールです。 GCのチューニングについて Ruby 2.1ではRGenGCと呼ばれる新たなGCメカニズムが導入されました。それにともない、以下の環境変数が導入され、これらを設定することでGCの動作をチューニングすることができます。これらの環境変数の効果はRubyの起動時のみ有効です(つまりrubyを動かしている途中で変更することはできません)。 チューニングのための環境変数 RUBY_GC_HEAP_INIT_SLOTS (default: 10000) - 最初に確保されるスロット数。 RUBY_GC_HEAP_FREE_SLOTS (default: 4096) - GC後、必ずこの数の空きスロット数が確保される。 つまりGC後に空きスロットが足りなければ新たなページ

  • Ruby 製バッチ処理を省メモリ化した - おいちゃんと呼ばれています

    少し前に Ruby 製のバッチ処理を省メモリ化したときの話をメモしておきます。 どのようなバッチ処理だったか 動画共有サイトにアップされた動画がオトナの事情によって削除されることがしばしばあるということは周知のことだと思う。そこで、一定時間おきに配信元サイトをチェックして、もし動画が配信元から削除されていたら、当該動画をこちらのサイトでも動画一覧に表示させないようにする、検索に引っ掛からないようにする、ということをやっていた。 便宜上、そのバッチ処理のことを「(動画の)存在確認くん」と呼ぶ。 oom-killer に殺されていた 彼は非常にデキる子だったが、なんか最近、動画の落とし漏れがあるなーと感じた。原因を調べたら、メモリをい過ぎて oom-killer に殺されていた。 cat /var/log/messages Apr 6 12:46:45 xxx001 kernel: Out

    Ruby 製バッチ処理を省メモリ化した - おいちゃんと呼ばれています
  • 1