大图像文件夹导致 Symfony "cache:clear" 崩溃并出现 OutOfMemoryException

Large image folder crashes Symfony "cache:clear" with OutOfMemoryException

当我将大图像文件夹放入 /web folder 时,"cache"clear" 命令失败并显示

"OutOfMemoryException"

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 151552 bytes) in /Users/john/Development/git/website/vendor/twig/twig/lib/Twig/Compiler.php on line 124

[Symfony\Component\Debug\Exception\OutOfMemoryException]                                  
Error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 151552 bytes)  

Exception trace:
() at /Users/john/Development/git/website/vendor/twig/twig/lib/Twig/Compiler.php:124

图像文件夹包含 10.000 张图像,大约 600MB。当我删除此文件夹时,"cache:clear" 命令成功运行。

我正在使用 Symfony 2.8PHP 7.1。 PHP 内存限制设置为 512MB,这是我主机上的最大值。

更新:

当我在命令中添加 --no-warmup 时,我没有得到 exception

$ php app/console cache:clear --verbose --no-warmup

您可以将 memory_limit 更改为 ini_set('memory_limit', '-1');但这根本不是解决方案。

请不要那样做。显然 php 某处有内存泄漏,您告诉服务器只使用它想要的所有内存。问题根本没有解决。如果您监控您的服务器,您会发现它现在可能用完了大部分 RAM,甚至交换到磁盘。

您可能应该尝试找出代码中的确切错误并修复它。

您可以像这样限制 php 命令的使用:

php -d memory_limit=512M app/console cache:clear --verbose --no-warmup

希望这对你有用:)