睡眠时间是否计入执行时间限制?

2022-08-30 09:30:29

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

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

  2. 使用该功能时是否有任何风险?它是否会消耗大量的 CPU 性能?sleep()


答案 1

你应该试试它,只要有一个脚本,它的休眠时间超过你的最长执行时间。

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

剧透:在Linux下,睡眠时间被忽略,但在Windows下,它算作执行时间。


答案 2

它只影响脚本时间,而不是像 sleep() 这样的系统调用。显然有一个错误,在Windows上包含睡眠()。最大执行时间是关于实时的,而不是CPU时间或类似的东西。但是,您可以更改它:

至于最后两者之间的差异,我相信max_execution_time是一个固定的数量。运行:

ini_set('max_execution_time', 60);

将脚本限制为 60 秒。如果在 20 秒后,您拨打:

set_time_limit(60);

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


推荐