【问题标题】:PHP ini_set max_execution_time and memory_limit not workingPHP ini_set max_execution_time 和 memory_limit 不起作用
【发布时间】:2012-03-05 21:43:03
【问题描述】:

我在一个文件中有以下代码(我是通过终端直接运行它或者我访问网页,这没有区别)。

error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', true);
ini_set('max_execution_time', 1);
ini_set('memory_limit', '512M');
sleep(2);
echo ini_get('max_execution_time');

它输出1。不应该抛出错误,说超出了执行时间吗?

来自phpinfo()我得到:

max_execution_time  1   55
memory_limit    512M    1024M

【问题讨论】:

    标签: php php-5.3


    【解决方案1】:

    sleep() 时间不计入执行时间,因为它在睡眠时没有执行任何代码。

    注意:

    set_time_limit() 函数和配置指令 max_execution_time 只影响脚本的执行时间 本身。在执行之外发生的活动上花费的任何时间 例如使用 system() 的系统调用、流操作、 确定最大值时不包括数据库查询等 脚本运行的时间。在 Windows 上不是这样 其中测量的时间是真实的。

    这包括 sleep(),正如在 cmets 中多次提到的 sleep() 和 set_time_limit(),例如

    riki151205-Jun-2007 05:29

    请注意,在 Linux 下,睡眠 time 被忽略,但在 Windows 下,它算作执行时间。

    【讨论】:

    • 哇!多谢!实际上,我正在使用 system() 命令,我看到该命令花费的时间太长,并且想知道为什么脚本没有停止。知道 memory_limit 是否会影响 system() 命令吗?
    • 如果您使用 exec() 的第二个参数,那么它将从执行的命令中检索每一行输出到该数组,因此它将使用 PHP 内存
    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 2012-04-13
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多