0
設定較長
我使用curl_multi_exec()來獲取一些API的數據,並使用下面的代碼:PHP curl_multi_exec()採取比時間CURLOPT_TIMEOUT_MS
$startTime = microtime(true);
$running = null;
do
{
curl_multi_exec ($curlMultiHandleResource, $running);
usleep(50000);
}
while ($running > 0);
$runningTime = microtime(true)-$startTime;
。我將CURLOPT_TIMEOUT_MS = 1800和CURLOPT_CONNECTTIMEOUT_MS = 1800 。在我的Windows機器上,$ runningTime總是在1.8秒或更短的時間,但在Linux機器上它有時會超過2.5秒。 所以我想知道爲什麼這會比CURLOPT_TIMEOUT_MS花費更長的時間?
編輯:我有點縮小了這個問題。我回應了在調用curl_multi_exec()所花費的時間,並發現每次在while循環的第二次迭代中它比平常花費的時間更長。通常它需要10^-3到10^-5秒,但在第二次迭代中需要0.5到1.5秒。
它在內部調用'fork()'或類似嗎?如果是這樣,超時纔會在新進程解析並應用它時開始。在這種情況下,超時將不包括新的進程啓動時間。 – Paul 2014-12-05 14:30:21