これは、大量のデータを複雑な方法で処理し、実行に数時間かかる PHP 5.3 Cli アプリケーションに関連しています。誰かが、ガベージ コレクションをオフにすると実行速度が大幅に向上することを発見しました (おそらく 50% 程度)。
このパフォーマンス ヒットについて言及している唯一の記事はhttp://derickrethans.nl/collecting-garbage-performance-considerations.htmlです。完全にフォローしているかどうかはわかりませんが、循環参照が多いコードにのみ適用されることを示唆しているようです。
誰かがこれに光を当てることができますか?
また、gc をオフにした場合、手動でメモリを削減する方法はありますか? unset() の使用が提案されています。簡単なテストでは、オブジェクトのサイズに関係なく、unset() によって約 80 バイトが解放されることが示されました。これは、参照の設定を解除しているだけであることを示唆しています。これは、私がオンラインで読んだことによって裏付けられています。変数がスコープから外れると、ガベージ コレクションがなくても、これらの 80 バイトがとにかく解放されると考えるのは正しいでしょうか?