【发布时间】:2010-03-08 17:06:23
【问题描述】:
我有一个循环运行大约。 25 分钟,即 1500 秒。 [100 循环与睡眠(15)]
循环内语句的执行时间非常短。
我的脚本托管在 GoDaddy 上。我确信他们对执行时间有某种限制。
我的问题是,他们关心的是“总 CPU 执行时间”还是总运行时间。
【问题讨论】:
标签: php sql-server cpu-usage
我有一个循环运行大约。 25 分钟,即 1500 秒。 [100 循环与睡眠(15)]
循环内语句的执行时间非常短。
我的脚本托管在 GoDaddy 上。我确信他们对执行时间有某种限制。
我的问题是,他们关心的是“总 CPU 执行时间”还是总运行时间。
【问题讨论】:
标签: php sql-server cpu-usage
他们会关注 CPU 执行时间,而不是总运行时间,除非连接是一个问题并且您使用了很多(听起来不像您) .
运行时间(如秒表)对于共享主机来说并不重要,如果您的循环运行 3 年但只使用 0.01% 的 CPU,则不会影响它们的托管能力。但是,如果您以 100% 的 CPU 运行 3 年,这将直接影响在同一硬件上可以运行多少其他应用程序/VM/任何东西。这将意味着更多的服务器来托管相同数量的人,这意味着金钱......他们关心。
对于标题中的问题:它们非常不同。使用sleep() 和相同的总时间,这意味着 CPU 正在做的实际工作要少得多,因为它可以完成工作、睡眠/空闲,并且仍然在相同的时间内完成。当您调用 sleep() 时,您不会对 CPU 造成负担,这是一种非常低功耗的操作,可以让计时器继续运行直到再次调用您的代码。
【讨论】:
这是典型的时间限制:
http://es2.php.net/manual/en/info.configuration.php#ini.max-execution-time
通常可以使用 ini_set() 在每个脚本的基础上进行更改,例如:
ini_set('max_execution_time', 20*60); // 20 minutes (in seconds)
无论如何,确切的时间限制可能取决于 PHP 的运行方式(Apache 模块、fastCGI、CLI...)。
【讨论】:
set_time_limit() 函数。不知道是不是完全等同于调用ini_set()。我想我一直只是假设如果他们为它创建了一个函数,那么使用它可能会很好。