こんにちは、次の奇妙なエラーが表示されます
致命的なエラー: メモリ不足 (割り当てられた 29097984) (802454 バイトを割り当てようとしました)
私がするとき、私はini_get('memory_limit')
得256M
ました。
27M
上記のエラーでは、スクリプトは??に達すると終了します。
提案は共有ホスティング アカウントを使用しています。
こんにちは、次の奇妙なエラーが表示されます
致命的なエラー: メモリ不足 (割り当てられた 29097984) (802454 バイトを割り当てようとしました)
私がするとき、私はini_get('memory_limit')
得256M
ました。
27M
上記のエラーでは、スクリプトは??に達すると終了します。
提案は共有ホスティング アカウントを使用しています。
メモリ制限が 256 メガバイトであっても、スクリプトがそれほど多くを割り当てられるわけではありません。その理由は、RAM がさまざまなプロセス間で共有されているためです。それらの一部は大量のメモリを割り当て、OS に数メガバイトが残っている可能性があるため、課された制限に関係なく、スクリプトは必要なだけ割り当てることができません。
焦点を当てる必要があるのは、可能な限り最小限の RAM を使用することです。あなたのようなデータベースの結果については、「通常の」PHP 配列ではなくSplFixedArrayを使用することをお勧めします。
「デバッグ」して問題の根本に到達する必要があります。PHPのメモリ制限を526Mに増やすことから始めます
これを行うには、次のようにします。
ini_set('memory_limit', '512M');
これは、ほぼすべてを処理するのに十分すぎるほどです。それでもうまくいかない場合は、どこかで無限ループを探します。
共有ホストを使用している場合、メモリ制限を変更する権限がない可能性が非常に高くなります。問題は、巨大な配列を作成しようとしている可能性が最も高いです。スクリプトに現在存在するループ構造に対して、別のアプローチを試してみることをお勧めします。しかし、コードがなければ、助けてくれる人は他にあまりいません。