PHP 5.2までのガーベジコレクタは参照カウント方式です。 循環参照が発生すると、その参照に含まれるオブジェクトが回収できませんので、デーモンなど長時間実行するようなスクリプトを作る場合は循環参照を起こさないように注意する必要があります。 尚、PHP 5.3からは循環参照コレクタが使え、デフォルトで有効になっています。 実際にPHP 5.1.6と5.3.0を比較し、実際にどのような動きになるか以下のコードで試してみました。 <?php ini_set('memory_limit', -1); // gc_disable(); class A { } $loop_count = 1000000; for($i = 1; $i <= $loop_count; $i++) { $a = new A; $a->self = $a; // 循環参照 if (($i % round($loop_co
3.2 gc -- ガベージコレクタ インターフェース gcモジュールは、インタプリタのビルドオプションで循環ガベージコ レクタを有効にした場合のみ使用することができます(デフォルトで有効)。も し無効になっている場合にこのモジュールをインポートすると、 ImportErrorが発生します。 このモジュールは、循環ガベージコレクタの無効化・検出頻度の調整・デバッグ オブションの設定などを行うインターフェースを提供します。また、検出した到 達不能オブジェクトのうち、解放する事ができないオブジェクトを参照する事も できます。循環ガベージコレクタはPyhonの参照カウントを補うためのものです ので、もしプログラム中で循環参照が発生しない事が明らかな場合には検出をす る必要はありません。自動検出は、gc.disable()で停止する事ができま す。メモリリークをデバッグするときには、 gc.set
GCアルゴリズム詳細解説 日本語の資料がすくないGCアルゴリズムについて詳細に解説します トップページページ一覧メンバー編集 × GC 最終更新: author_nari 2010年03月14日(日) 20:47:11履歴 Tweet このWikiが目指す所 GCとは? GCを学ぶ前に知っておく事 実行時メモリ構造 基本アルゴリズム編 Reference Counter Mark&Sweep Copying 応用アルゴリズム編 IncrementalGC 世代別GC スナップショット型GC LazySweep TwoFinger Lisp2 Partial Mark and Sweep -Cycle Collection- Mostly Parallel GC train gc MostlyCopyingGC(Bartlett 1989) TreadmillGC(Barker 1992)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く