2

こんにちは、次の奇妙なエラーが表示されます

致命的なエラー: メモリ不足 (割り当てられた 29097984) (802454 バイトを割り当てようとしました)

私がするとき、私はini_get('memory_limit')256Mました。

27M上記のエラーでは、スクリプトは??に達すると終了します。

提案は共有ホスティング アカウントを使用しています。

4

3 に答える 3

0

メモリ制限が 256 メガバイトであっても、スクリプトがそれほど多くを割り当てられるわけではありません。その理由は、RAM がさまざまなプロセス間で共有されているためです。それらの一部は大量のメモリを割り当て、OS に数メガバイトが残っている可能性があるため、課された制限に関係なく、スクリプトは必要なだけ割り当てることができません。

焦点を当てる必要があるのは、可能な限り最小限の RAM を使用することです。あなたのようなデータベースの結果については、「通常の」PHP 配列ではなくSplFixedArrayを使用することをお勧めします。

于 2011-12-21T14:49:41.570 に答える
0

「デバッグ」して問題の根本に到達する必要があります。PHPのメモリ制限を526Mに増やすことから始めます

これを行うには、次のようにします。

ini_set('memory_limit', '512M');

これは、ほぼすべてを処理するのに十分すぎるほどです。それでもうまくいかない場合は、どこかで無限ループを探します。

于 2011-12-21T14:38:03.150 に答える
0

共有ホストを使用している場合、メモリ制限を変更する権限がない可能性が非常に高くなります。問題は、巨大な配列を作成しようとしている可能性が最も高いです。スクリプトに現在存在するループ構造に対して、別のアプローチを試してみることをお勧めします。しかし、コードがなければ、助けてくれる人は他にあまりいません。

于 2011-12-21T14:42:05.550 に答える