2013-02-25 11 views
5

zend_mm_heap corrupted大きな環境を事前レンダリングするために書いたPHPプログラムでエラーメッセージが表示されます。PHPスクリプトのヒープが壊れています

私はそれが不安定ですが、スクリプトに変数があまりにも多く割り当てられていることが原因であると思われます。スクリプトは約20の変数しか持たないので、そのうちの1つは最大500の要素を保持します。つまり、合計の反復数は数十億オーダーになります。

私は疑いがありますか?もしそうなら、それについて何かできることはありますか?たとえば、スクリプトをしばらく実行した後、重要な変数をファイルにダンプしてスクリプトを再起動し、それらの変数を選択して継続する方が良いでしょうか?

+0

あなたはすでにこれを見ましたか? http://stackoverflow.com/questions/2247977/what-does-zend-mm-heap-corrupted-mean –

+0

はい、あります。答えはどれも関連性がないようです。私はOBを使用していない、私はオブジェクトを使用していますが、プロシージャ関数を代わりに使用しようとしたが、エラーはまだ起こった、配列のサイズは明示的にそれを追加する前にチェックして、私はWindowsを使用しています。 –

+0

PHPエラーログには何もありませんか?スクリプトがすべてのエラーを表示するように設定されていても、画面上に表示されなかった追加情報があることがあります。 –

答えて

0

私はこの問題を見て、ファルコンを使ってそれを再現できますが、それはAPCキャッシュから発生したようです。私はAPCからzend opcacheに切り替えることで修正しました。 APCが無効になったかどうかを確認するには、APCを無効にしてみてください。

ベスト私は、私の調査から、APCがzendが使用しているメモリに何かをしているという理由が考えられます。 PS、それはzendフレームワークとは何の関係もなく、PHPにマージされたzendの部分に関連するエラーです。

0

問題を解決するには、PHPバージョンと互換性のあるAPCの最新バージョンをダウンロードしてください。

APCの古いバージョンを上書きするように強制インストールする必要があります。これは、多くの場合、あなたが持っている問題を解決します。

関連する問題