【发布时间】:2017-01-20 11:46:03
【问题描述】:
使用此代码:
for($i = 1; $i <= $times; $i++){
$milliseconds = round(microtime(true) * 1000);
$res = file_get_contents($url);
$milliseconds2 = round(microtime(true) * 1000);
$milisecondsCount = $milliseconds2 - $milliseconds;
echo 'miliseconds=' . $milisecondsCount . ' ms' . "\n";
}
我得到这个输出:
miliseconds=1048 ms
miliseconds=169 ms
miliseconds=229 ms
miliseconds=209 ms
....
但是有睡眠:
for($i = 1; $i <= $times; $i++){
$milliseconds = round(microtime(true) * 1000);
$res = file_get_contents($url);
$milliseconds2 = round(microtime(true) * 1000);
$milisecondsCount = $milliseconds2 - $milliseconds;
echo 'miliseconds=' . $milisecondsCount . ' ms' . "\n";
sleep(2);
}
这个:
miliseconds=1172 ms
miliseconds=1157 ms
miliseconds=1638 ms
....
那么这里发生了什么?
【问题讨论】:
-
在回显后尝试
unset($res)for 循环... -
这没有帮助...
-
也许服务器本身缓存了一些服务于 URL 的内容?
-
您的信息流来自哪里?将
stream_context_create($arrContextOptions)解释为来源。 -
没有 $arrContextOptions 的结果相同。