これはかなり議論されているようです。私は見つけたいくつかのことを試しましたが、運はありません。PHP - 彗星のメモリの問題
XMLコールから受け取ったオブジェクトを格納する「ハッキー」キャッシュが構築されています。 XML呼び出しはページの読み込みに時間がかかることが判明したため、ユーザーは管理者のボタンを押してキャッシュを再構築できます。キャッシュルーチンは、メモリ割り当てエラーで死にかけています。
私はこれが非常に曖昧な質問であることは知っていますが、コードの大きな部分を投稿するのに役立つかどうかはわかりません。
私はそれを使用し終えた後、私はすべての設定を解除しています。私はgc_collect_cycles()を呼び出していますが、何もしないようです。
私は2つ以上の匿名関数を呼び出しています。これらは犯人かもしれませんか?
どうすればよいですか?睡眠をしても助けてくれませんか? http://pastebin.com/8M1Dk73E
ペーストビンコードの行79には、私が呼んでいるgc_collect_cycles:ここにコードを編集
はコードです。それが置けるかどうかは分かりません。
forループの代わりにforeachループを使用していますが、私はオブジェクトのコピーに大きな違いがあることを知っていますが、実行時間が長くても同じ変数を設定しなければならないと思います。
まあ、私は迷っているので、どんな考えが役に立ちます。
いくつかの質問:どのくらいのメモリがPHPに割り当てられていますか?エラーメッセージを印刷できますか?アイテムをフェッチする順序を変更しながら10回実行すると、同じ行番号(これは大きなメモリ・グラブの原因となるコードである可能性が高いという印)で一般に期限切れになりますか?それは実際にコードの大きな塊を参照するのに役立つかもしれません:) –
128MBが割り当てられます、エラー: "致命的なエラー:134217728バイトの枯渇(5426168バイトを割り当てようとしました)の許容メモリサイズ..."私はコードが関連していることを認めてうれしく思います...私はちょうどメモリを解放するために他に何をするのか分かりません。これは、私が言うことができるものではありません。ああ、メモリサイズを増やして、それを1日と呼びます。検索されるデータのサイズは、一部の人にとって大規模なものになる可能性があるためです。 –