0

我有一个循环运行大约。25 分钟,即 1500 秒。[100 个带睡眠的循环(15)]

循环内语句的执行时间非常短。

我的脚本托管在 GoDaddy 上。我确信他们对执行时间有某种限制。

我的问题是,他们关心“总 CPU 执行时间”还是总运行时间。

4

2 回答 2

3

他们将关注CPU Execution Time,而不是总运行时间,除非连接是一个问题并且您使用了很多它们(听起来不像您)。

运行时间,就像在秒表中一样,对于共享主机来说并不重要,如果你的循环运行了 3 年但只使用 0.01% 的 CPU,它不会影响它们的托管能力。但是,如果您以 100% 的 CPU 运行 3 年,这将直接影响在同一硬件上可以运行多少其他应用程序/VM/任何东西。这将意味着更多的服务器来托管相同数量的人,这意味着他们关心的钱......

对于标题中的问题:它们非常不同。在sleep()总时间相同的情况下,这意味着 CPU 正在做的实际工作要少得多,因为它可以完成工作、睡眠/空闲,并且仍然在相同的时间内完成。当你打电话时sleep(),你并没有对 CPU 征税,这是一个非常低功耗的操作,它可以让计时器继续运行,直到再次调用你的代码。

于 2010-03-08T17:17:41.283 回答
0

这是典型的时间限制:

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 ...)。

于 2010-03-08T17:26:40.910 回答