【发布时间】:2014-07-08 15:19:54
【问题描述】:
在 PHP 中,当脚本消耗超过 memory_limit 值时,脚本会因错误而停止。如何添加警告级别:如果我的脚本消耗超过 90Mb,我在日志文件中有警告,但脚本继续运行,如果消耗超过 128Mb,仍然会崩溃?
我对 PHP 扩展或 PHP C 代码一无所知,但只要我们自己构建了 PHP,我们甚至可以修补代码。
在 Zend/zend_alloc.c 我可以看到这个
if (segment_size < true_size || heap->real_size + segment_size > heap->limit) {
真的很容易在这之前添加一行并将已用内存与另一个限制进行比较,然后发出警告。
我可以在扩展程序中执行此操作,还是通过修补 PHP 代码来执行此操作?为什么这还不存在?这是个坏主意吗?这是否已经存在于某个地方?
为 MAX_EXECUTION_TIME 添加相同的警告似乎更加困难,因为我仍然不明白计时器的处理方式。
【问题讨论】: