タグ

RubyとGCに関するyassのブックマーク (4)

  • RubyとPythonの違いからガベージコレクタを理解する - ワザノバ | wazanova.jp

    http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置

    yass
    yass 2013/10/28
    " 参照カウントをアルゴリズムに採用しない言語がある理由は、/ 各オブジェクトの内部に参照カウントを置くスペースを確保したり、変数/参照を上下変化させるオペーレーションなど、この手法のインプリは難易度が高い"
  • 情報処理学会論文誌プログラミング No. SIG.10(PRO 33) - Matzにっき(2007-06-30)

    << 2007/06/ 1 1. [Ruby] 楽天技術研究所フェロー就任の影響 2. [知財] 私的録音録画小委員会、CD売上減と私的複製の関係めぐり議論は平行線 3. [Ruby] 川o・-・)<2nd life - Ruby で debug する7つの方法 4. [Ruby] Rails vs Django: a non biased yet useless comparison 5. [OSS] Dave Gilbert's Weblog : The Badness of JFree 6. [OSS] Trust, But Verify - O'Reilly ONLamp Blog 7. [言語] Scala Actors -- A Short Tutorial 8. [Ruby] taw's blog: Why RLisp will not support Ruby class

    yass
    yass 2013/08/11
    " 従来のGC方式ではマークのコストは、生きているオブジェクト数に依存する/「世代別」方式では、 (old→new参照を検出するため)旧世代オブジェクトから全部マークした上、 主にnew領域を対象に通常のマークを行う"
  • koie blog : いってきた: mrubyの夕べ

    2013年01月29日00:00 カテゴリsw いってきた: mrubyの夕べ 2013-01-28 17:00〜19:30 神保町 IIJ 17F 大会議室 http://partake.in/events/36879645-7365-4dcc-ac80-60fdcbee1cfb http://togetter.com/li/446585 朝起きたら相模原は雪がうっすら積ってギュッギュ音がしてたけど、都心はいつもどおり灰色の景色。 10分前に会場到着。 mruby / @yukihiro_matz [2013-01-28 17:04] 技術的な話をするのは初めてなのでうれしい。 em.rubyと発音して mrubyのm: 開発者にまつもとさんがおおい. 組み込み: いろいろ定義はあるけど、メモリがすくない、というような環境。いまではPCなみ。ソフトの割合が増えてきた。 アーキテクチャにお

    koie blog : いってきた: mrubyの夕べ
    yass
    yass 2013/08/11
    " インクリメンタルGC スイープ時間: 生成されたオブジェクト数に比例 マーク時間:生きているオブジェクト数に比例"
  • 第5章 ガ-ベージコレクション

    プログラムの実行時イメージ 突然だが、章を始めるに先立ち、プログラム実行時のメモリ空間の状態につ いて予習をしておこうと思う。この章ではコンピュータの低レベルな部分にか なり踏み込んでいくことになるので、あらかじめある程度の知識を仕入れてお かないと太刀打ちできないのだ。それにこの後の章になればいずれ必要になっ てくる。ここで一回やってしまえば後が楽だ。 セグメント 一般的なCプログラムではメモリ空間の中に以下の部分を持つ。 テキスト領域 スタティック変数やグローバル変数の置場 マシンスタック ヒープ テキスト領域はコードが置いてあるところ。二番目は見ての通り。マシンスタッ クには関数の引数やローカル変数が積まれる。ヒープはmalloc()で割り当てて もらうところだ。 三つめのマシンスタックについてもう少し話そう。マシン「スタック」と言う くらいだから当然スタック構造をしている。つまり

    yass
    yass 2013/06/15
  • 1