何か非常に奇妙なことが昨日コーディング中に起こった。Codeigniterの突然のPHPメモリリーク
私は新しい機能をテストしていましたが、すべてうまくいきました。問題ありません。テストメソッドでオブジェクトの成功したビルドをチェックするたびに、スクリーン上にjsonオブジェクトとprint_rを構築していました。
私はコードベースに実装していましたが、やはりうまくいきました。その後、別のメソッドを変更し、その新しいメソッドで動作するようにコードを更新し、関連するスクリーンをテストし、すべて正常に動作しました。
突然ページがリロードされると(すべて正常に動作した後に)、PHPのメモリリークエラーが発生します。
致命的なエラー:1342177280バイトの許容メモリサイズが使い果たさDに(65488のバイトを割り当てることを試みた):\ public_htmlの\ジェネシス\システム\コア\ common.phpのライン上の901
これは関係なく、私が単離何起こりません。
私もにインデックス・ページに変換しました:
public function index() {
echo 'Hello World';
//$this->buildPage("login");
}
、それはまだエラーがスローされます。
私は現在、私のメモリ制限のためにこれを持っている:
memory_limit=2480M
それは1280年で、その後、私は別の1200年とまだ差が追加されました。
私の他のサイトはうまく読み込んでいますが、これだけです。しかし、私はすべての方法をロードすることができないので、それをトラブルシューティングすることはできません。
他に誰かがこの問題を抱えていますか?
どのようにそれを把握するためのアイデアですか?
一般的に、このタイプは、スクリプトのメモリ使用量が多すぎる場合に発生します。これは、制御が尽きるループがあり、ループの各パスでオブジェクトを作成したり、配列に追加したりしている場合、PHPでよく起こります。 **無限ループをチェックする**。 これが問題でない場合は、終了したオブジェクトを破棄してPHPを助けよう。たとえばnullに設定する。 $ OldVar = null;。 – Linus
古いオブジェクトを破棄しますか?このようなもの? function($ oldObj){ $ newObj = new stdClass(); $ newObj-> val1 = $ oldObj-valX; $ oldObj = null; return $ newObj; } – Solvision
http://stackoverflow.com/questions/8798443/best-way-to-destroy-php-objectのようなもの – Linus