Performance
Laravel 8
Laravel 9
Laravel 10
Laravel 11
Laravel 12
Memory Limit Exhausted in Laravel - How to Fix
This error occurs when a PHP script tries to use more memory than allowed by the memory_limit setting.
The Error
Error Message
Allowed memory size exhausted
Common Causes
- 1 Loading too many Eloquent models into memory
- 2 Processing large files without streaming
- 3 Memory leaks in loops
- 4 Not using lazy collections or chunking
- 5 Debug tools enabled in production
Solutions
1
Use chunking for large datasets
PHP
// Instead of loading all records
$users = User::all(); // Bad for large datasets
// Use chunk to process in batches
User::chunk(1000, function ($users) {
foreach ($users as $user) {
// Process each user
}
});
2
Use lazy collections
PHP
// Memory efficient iteration
User::lazy()->each(function ($user) {
// Process one at a time
});
// Or use cursor
foreach (User::cursor() as $user) {
// Hydrates one model at a time
}
3
Increase memory limit if needed
PHP
// In your script
ini_set('memory_limit', '512M');
// Or in php.ini
memory_limit = 512M
4
Stream large file downloads
PHP
return response()->streamDownload(function () {
$handle = fopen('large-file.csv', 'r');
while (!feof($handle)) {
echo fgets($handle);
}
fclose($handle);
}, 'download.csv');
Need Help With Your Laravel Project?
I specialize in building custom Laravel applications, process automation, and SaaS development. Whether you need to eliminate repetitive tasks or build something from scratch, let's discuss your project.
Currently available for 2-3 new projects
About Hafiz
Full Stack Developer from Italy. I build web applications with Laravel and Vue.js, and automate business processes. Creator of ReplyGenius, StudyLab, and other SaaS products.
View Portfolio