前のセクションで、リサイクルがパフォーマンスにわずかな影響を与える可能性があると簡単に述べましたが、これは PHP 5.2 と PHP 5.3 を比較した場合に限ります。 PHP 5.2 ではログをまったく記録しない場合よりも遅くなる可能性がありますが、PHP 5.3 では PHP ランタイムに加えられたその他の変更により、このパフォーマンスの低下が軽減されます。
ここには、パフォーマンスに影響を与える主な領域が 2 つあります。 1 つはメモリ領域の節約であり、もう 1 つはガベージ コレクション メカニズムがメモリ クリーニングを実行する際の実行時間 (実行時遅延) の増加です。両方の領域について見ていきます。
メモリスペースの節約
まず第一に、ガベージ コレクション メカニズムを実装する理由は、前提条件が満たされた場合に循環参照される変数をクリーンアップしてメモリ フットプリントを節約することです。 PHP の実行では、ルート バッファがいっぱいになるか、gc_collect_cycles() 関数が呼び出されると、ガベージ コレクションが実行されます。以下の図は、PHP 5.2 および PHP 5.3 環境における次のスクリプトのメモリ使用量を示しています。ただし、スクリプトの開始時に PHP 自体が占有する基本メモリは除きます。
例 #1 メモリ使用例
上記は、「PHP 機能のガベージ コレクション メカニズム 3 - パフォーマンスに関する考慮事項」の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。