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