我有一個循環運行約。 25分鐘即1500秒。 [100個睡眠環(15)]在睡眠()和沒有睡眠的長循環()中循環的CPU執行時間是不同的,兩者的總運行時間相同?
循環內語句的執行時間非常短。
我的腳本託管在GoDaddy上。我相信他們對執行時間有一些限制。
我的問題是,他們關心「總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 ...)。
我一直首選'set_time_limit()'函數。我不知道它是否完全等同於調用ini_set()。我想我一直以爲只要他們爲它創建了一個函數,就可以使用它。 – 2010-08-24 23:17:19