0

多くのデータが関係するPHPでアルゴリズムを実行しています。すべての処理は、ネストされた for ループ内で行われます。奇妙なことに、外側の for ループは、「X」回の反復後に動作を停止します (「X」は、スクリプトを実行するたびに変化します)。「X」に応じて、スクリプトがクラッシュするまでに 5 分から 30 分かかります。エラーは発生せず、var_dump の不完全な出力のみを行います (外側のループの最初の繰り返しで)。

1. php.ini でタイムアウト制限を 3600 秒 (60 分) に設定しました。2. 外側の for ループの反復ごとに memory_get_usage() を出力していますが、php に割り当てられた最大メモリと比較してはるかに少ないことを確認しました。3. 一度使用した配列の設定を解除しています 4. 変数名を再利用して forloop 内のメモリを制限しています 5. DB への呼び出しは最小限に抑えています

私はこれを長い間解決してきましたが、役に立ちませんでした。したがって、私の質問は、この問題の原因となる可能性のあるもの/デバッグ方法です。どうもありがとう!エクストラ:テストデータのサイズがはるかに小さい場合、すべて正常に動作します。

4

2 に答える 2

0

これは、サーバー コアの使用率に問題があるように思われます。同様の回答/回避策がここにあります: Boost Apache2 up to 4 cores usage, running PHP

データセットを並行して実行してみてください。

于 2013-04-13T08:59:31.307 に答える
0

コードがないのは明らかですが、これは推測にすぎませんが、データベースへの単一接続を使用していることを確認していますか? 毎回再接続していると、接続が多すぎてこのようなエラーが発生する可能性があります。

于 2013-04-13T08:38:04.780 に答える