タグ

gcに関するreptamのブックマーク (6)

  • Perl、Java、Ruby における GC アルゴリズム : NDO::Weblog

    PerlJavaRuby における GC アルゴリズム [ Perl ] オライリー・ジャパンから『続・初めてのPerl Perlオブジェクト、リファレンス、モジュール』が出ました。(12/29発売ですが、もう売ってました。) 早速購入、1/3 ぐらい読みました。 Perlの入門書として個人的にいちおししているラマこと『初めてのPerl』の続編という形で出版された、この続・始めてのPerlは、表紙の動物が南アメリカラクダ科の"アルパカ"なので、アルパカと呼ぶことにします。 さて、アルパカ、内容の方は、ラマではあまり触れられなかった、少し高度な内容にフィーチャーされた。オブジェクト、リファレンス、モジュールについて、初めてそれに触れるプログラマがしっかりと理解できるように、丁寧に解説されています。和訳も結構良くて、読みやすいです。 全体を通したレビューはまた後日に書くとして、P

    reptam
    reptam 2011/12/23
    Perlは参照カウント式、Javaは多くのばあい世代別コピー式GC、Rubyはマークアンドスイープ式
  • ガベージコレクション - Wikipedia

    ガベージコレクション[注釈 1](英: garbage collection、GC)とは、コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された[1][2]。 メモリの断片化を解消する機能はコンパクション(英: memory compaction)と呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタ(英: garbage collector)と呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。 「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾

    reptam
    reptam 2011/12/23
  • 参照カウント - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "参照カウント" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年5月) 参照カウント(さんしょうカウント、英: reference counting)は、メモリオブジェクトのライフサイクル(寿命)管理に使用される方式のひとつ。ガベージコレクションの実装方法およびガベージコレクタの動作方法のひとつとしても利用される。また、コピーオンライトの実装方法としても多用される。 処理の概要[編集] すべてのオブジェクト(メモリ上に置かれているデータの単位)に対して、参照カウントと呼ばれる整数値を付加しておく。これは、このオブジェクトへの参照(

    reptam
    reptam 2011/12/23
  • マーク・アンド・スイープ - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "マーク・アンド・スイープ" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年6月) マーク・アンド・スイープ(mark-and-sweep)は、ガベージコレクションの実装方法およびガベージコレクタの動作方法の一つ。 方法[編集] 基的な方針は、あるオブジェクト(ここでは、ルートオブジェクトと呼ぶ)からのトラバース(オブジェクトから別のオブジェクトへの参照を辿ること)によって到達可能なオブジェクトに印(マーク)をつけ、印のつかなかったオブジェクトを破棄(スイープ)する、というものである。 具体的な手順の一例は次のようになる: ルー

    reptam
    reptam 2011/12/23
  • 言語の GC 機能と参照カウント (中編) - moriyoshiの日記

    前編でブクマコメントや日記コメントで どうしたら循環参照によるリークを回避できるのかを説明してほしい PHP 5.3 で cycle collector が搭載されることについてのフォローが欲しい という意見があったので、それも順次取り上げていくことにする。 当はこれを後編としたかったんだけど、どんどん詰め込みたい内容が増えているので、勝手ながら一旦切って中編、後編の 2 立てとさせてもらおう。 SpiderMonkey と XPCOM のガーベジコレクション さて、cycle collector というと Firefox 3 から搭載されるということで気になっている人も多いと思われるので、まずは SpiderMonkey (JavaScript の Mozilla での実装) ではどのような GC (ガーベジコレクション) が行われるのかを見てみたい。 基的に、SpiderMonk

    言語の GC 機能と参照カウント (中編) - moriyoshiの日記
    reptam
    reptam 2011/12/23
    SpiderMonkeyはマーク & スイープな GC、XPCOMでは参照カウントベースのGC
  • 第54回 ガベージコレクションについて - bingo_nakanishiの他言語出身者のためのPerl入門

    Perlのガベージコレクションの話をしたいと思います。 相方から、こんな質問が入りました。 相方の発言 sub h{ my @c = 1..10; return \@c; # ここは大丈夫? } my $d = h(); print $_, "\n" for @$d; ってできないよね? C言語的な意味で。 私の発言 できる。 Perl的な意味で。 C言語では それでは、なぜ相方はこんな発言をしたのだろうか。 C言語のソースを見てみよう。 まず、正常なものから、 #include <stdio.h> int main(void){ int i[10]; int j = 0; for(j=0;j<10;j++){ i[j] = j; } for(j=0;j<10;j++){ printf("%d \n", *(i+j)); } return 0; } 結果: 0 1 2 3 4 5 6 7

    第54回 ガベージコレクションについて - bingo_nakanishiの他言語出身者のためのPerl入門
    reptam
    reptam 2011/12/20
  • 1