Laravel 8.0 错误处理防止内存耗尽的有趣做法
/**
* Reserved memory so that errors can be displayed properly on memory exhaustion.
* @var string
*/
public static $reservedMemory;
...
self::$reservedMemory = str_repeat('x', 10240);
初始化类的时候给这部分分配 10240 byte
的内存空间
当时看到这样的操作我都惊了,还能这么搞!
@cxlblm 我也是,可能这就是大道至简 :see_no_evil:
PHP 对 OOM 的处理真的是无力吐槽,现代框架下出现 OOM 只输出了爆内存所在的文件和行,都没有 backtrace 没法知道问题出在哪。
laravel 5、6 也都是这么干的喔,7 应该也是
handleException
没法处理内存超出的错误,因为内存已经爆了yii2 内部也是这么搞得