在睡眠()和没有睡眠的长循环()中循环的CPU执行时间是不同的,两者的总运行时间相同?

问题描述:

我有一个循环运行约。 25分钟即1500秒。 [100个睡眠环(15)]在睡眠()和没有睡眠的长循环()中循环的CPU执行时间是不同的,两者的总运行时间相同?

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

我的脚本托管在GoDaddy上。我相信他们对执行时间有一些限制。

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

他们将关注CPU执行时间,不是总的运行时间,除非连接是一个问题,并且你正在使用它们中的很多(它听起来不像你)。

对于共享主机,运行时间与秒表一样无关紧要,如果您的循环运行3年,但只使用0.01%的CPU,则不会影响其主机的能力。但是,如果您以100%的CPU运行了3年,这直接影响到可以在同一硬件上运行的其他应用程序/虚拟机/数量。这意味着更多的服务器来承载相同数量的人,这意味着钱... 他们关心。

对于标题中的问题:他们是非常不同的。与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 ...)。

+0

我一直首选'set_time_limit()'函数。我不知道它是否完全等同于调用ini_set()。我想我一直以为只要他们为它创建了一个函数,就可以使用它。 – 2010-08-24 23:17:19