Fatal error: Allowed memory size exhausted
PHPスクリプトが許可されたメモリ上限を超えた場合に発生するエラー
概要
Fatal error: Allowed memory size of X bytes exhausted は、PHPスクリプトが memory_limit で設定されたメモリ上限を超えた場合に発生するエラーです。
エラーメッセージ
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65536 bytes) in /app/process.php on line 42
PHP Fatal error: Out of memory (allocated 268435456) (tried to allocate 134217728 bytes)
原因
- 大量のデータ処理: 大きな配列やオブジェクトをメモリに保持
- 無限ループ: 配列が際限なく増加
- ファイル全体の読み込み: 大きなファイルを一度にメモリに読み込む
- メモリリーク: 不要なオブジェクトが解放されない
- memory_limit が低い: デフォルト設定が不十分
解決策
1. memory_limit を増やす(一時的な対処)
| |
| |
2. データを分割して処理
| |
3. ジェネレーターを使用
| |
4. ファイルをストリームで処理
| |
5. 不要な変数を解放
| |
6. 画像処理でのメモリ管理
| |
7. Laravel/Eloquent でのメモリ管理
| |
8. Composer でのメモリ問題
| |
デバッグのコツ
メモリ使用量の確認
| |
メモリ制限の確認
| |
PHP の他のエラー
この記事は役に立ちましたか?