代码之家  ›  专栏  ›  技术社区  ›  caw

睡眠时间是否算作执行时间限制?

  •  46
  • caw  · 技术社区  · 15 年前

    关于这个问题,我有两个问题 sleep() PHP中的函数:

    1. 睡眠时间是否会影响PHP脚本的最大执行时间限制?有时,PHP会显示消息“超出了30秒的最大执行时间”。如果我使用,是否会显示此消息 sleep(31) ?

    2. 使用时是否存在任何风险 睡眠()

    5 回复  |  直到 13 年前
        1
  •  102
  •   Samuel    15 年前

    您应该尝试一下,只要有一个脚本休眠时间超过您的最大执行时间。

    <?php
      sleep(ini_get('max_execution_time') + 10);
    ?>
    

    扰流板: Under Linux, sleeping time is ignored, but under Windows, it counts as execution time.

        2
  •  8
  •   cletus    15 年前

    它只影响脚本时间,不影响系统调用,如sleep()。显然,在Windows sleep()中包含了一个bug。最大执行时间是关于实时性的,而不是CPU时间或诸如此类的时间。但是,您可以更改它:

    至于最后两个之间的差异,我认为最大执行时间是一个固定的数量。运行:

    ini_set('max_execution_time', 60);
    

    set_time_limit(60);
    

    脚本现在将限制为20+60=80秒。

        3
  •  8
  •   karim79    15 年前

    PHP sleep() page ,这里有一个用户提供的注释:

    注意:set_time_limit()函数 和配置指令 脚本本身的执行时间。 在执行 system(),sleep()函数, 在确定 脚本一直在运行。

        4
  •  0
  •   weynhamz    12 年前

    其他人已经介绍了sleep()和PHP脚本执行时间限制的基本知识,但是您还应该注意使用很长的睡眠时间时的另一个风险。

    通常,当浏览器向服务器发送请求但未从服务器接收任何数据时,连接可能会超时。这个时间限制取决于浏览器的配置,但我读到IE7的默认值只有30秒,而 Firefox has a default value of 115 seconds --您可以在Firefox中检查自己的配置,方法是 network.http.keep-alive.timeout

    编辑:我把network.http.keep-alive.timeout和browser.urlbar.search.timeout的单位弄混了。它确实是以秒为单位,而不是十分之一秒。

        5
  •  -5
  •   v3.    15 年前

    b) 它与降低CPU性能相反——它允许其他应用程序使用CPU(当应用程序休眠时,该应用程序的CPU使用率将接近0%)。除了从用户身上抽出时间,我真的想不出使用它会有什么风险。