メモリリークの変遷からPHP4-5-そのヒント?
-
21-09-2019 - |
質問
私は移植大きなウェブアプリケーションの共有ウェブホスティング環境です。このアプリにはPHP4.新しい環境では、PHP5.2.
何らかの理由で、漏洩に多大なメモリで実行する場合PHP5.2.できますか時計のメモリ使用量の屋根を利用memory_get_usage()までの限界に達し64MB古学博物館から徒歩圏内にありまで寛大で共有環境の中、当サイトに使われる12 16MB PHP4).
このほぼ全てが何か変わったPHP5、ものづくりの取り扱いにオブジェクト参照の引数になります。しかし、検索のための特定の行動(s)の原因となる(s)の漏れが極めて困難としての応用が非常に複雑なものであり、一なものでもあり、鉱山).
としてのアプリがインストールされて共有できます。いを利用することはできません古典的なデバッグ施設ってください).私は非常に多くを避けを再現できる環境を現地では、私はプロジェクトで作業している文字通りすべての日。
その後、私の質問:
は誰もが知的PHP4=>5遷移を落とし穴中心と大量の物というのが私の漏えい(s)
は誰もが知るあのようなデバッガ、スクリプトだけをグラフィカル範囲はダンプカーの"ツールを使用した変数によるPHPのことが、ティーチング-アシスタントを変数は食べれるのは膨大なメモリ?
解決
これらの問題を解決するためにい:
- プロのスクリプトとxdebug+wincachegrind(またはその他のプロファイラはfirephp.
- をonにして厳格モードを全て取得しますphpのエラー+通知。
そういうことができます:
- 最適化コードです。(去のエラー/警告/お知らせしたか、またはコード)
- クリーンコード.(使用の適切なphp5オブジェクトの書式でのパフォーマンスを
のオブジェクトモデルが変わりからPHP4にPHP5.確かに、厳格なモードにお伝えすることで利用するべきではありません、明示的な"渡される参照".
他のヒント
私はそれのstrtotimeた5.2のリリースで見つかった一つの共通の一つは、それをキャッチmemory_get_usageずに漏れました。問題はのstrptimeに固定されて変更します。
5.2.8のために、このためのバグレポートがあります - はhttp://バグ.php.net / bug.php?ID = 46889こちらます。
あなたは、重要な地元の人々に多くのメモリとプットmemory_get_usage機能を使用すると思うことをするスクリプトを開くことができます。