タグ

gcと考察に関するsnjxのブックマーク (6)

  • 【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 製バッチ処理を省メモリ化した - おいちゃんと呼ばれています
  • JavaScriptのメモリ消費について

    今回は、メモ書き... テーマはJavaScriptのメモリ消費についてです。 JavaScriptのメモリモデルはガベージコレクションという技術を用いています。 この手法は、ガベージコレクター(以下、GC)が最適と判断したタイミングでメモリの開放を行います。 問題点としては、下記があげられます。 ・タイミングが制御できない ・GCの処理中は、プログラムが利用可能な処理時間を奪う 要は、メモリ消費が大きいWebアプリはGCが頻発し、パフォーマンス劣化に繋がるよってこと。 GCの頻度はどうやって確認する? 下記の画像は、YahooのトップページをDeveloper ToolsのTimelineタブでレコーディングしたものです。 山になっている水色部分がメモリの使用量で、一回ガクッと下がっています。 これがGCのタイミングで、ギザギザになってるほどGCの頻度が高いです。 (「バージョン 39.

    JavaScriptのメモリ消費について
  • 【JavaScript】メモリの浪費を避けるコーディング | ヘッドウォータースのブログ TechNote

    こんにちは。良昌です。 Facebook、GithubなどのJSON形式でユーザ情報を返却するAPIや、PhoneGap、Monacaなどのスマートフォンのマルチプラットフォームを提供するライブラリ、IDEが開発ツールとして定着してきたことにより、JavaScriptを利用する機会が増えたのではないでしょうか。 今回は、JavaScriptコンテナがWebブラウザの場合に、動的に確保されるメモリ領域の浪費を避ける方法について書きたいと思います。 JavaScriptにおけるメモリの浪費を避けるコーディング JavaScriptにおけるメモリの浪費を避けるコーディングをするためには、GC(ガベージコレクション)、クロージャについての知識が必要です。まずは、この2つの機能について説明していきます。 ■GC(ガベージコレクション) GCとはプログラムが動的に確保したメモリ領域の内、不要になった領

    【JavaScript】メモリの浪費を避けるコーディング | ヘッドウォータースのブログ TechNote
  • OutOfMemoryError の調べ方 - Qiita

    OutOfMemoryError (以下 OOME)が起こったときにお手上げ状態にならないためにも、 Java のメモリ管理の仕組みとか、 OOME が起こったときの調査方法とかを調べる。 環境 OS Windows 7 > java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも J

    OutOfMemoryError の調べ方 - Qiita
  • 1