在PHP中查找服务器响应时间
I am using the following code to find the server response time.
<?php
// check responsetime for a webbserver
function pingDomain($domain){
$starttime = microtime(true);
// supress error messages with @
$file = @fsockopen($domain, 80, $errno, $errstr, 10);
$stoptime = microtime(true);
$status = 0;
if (!$file){
$status = -1; // Site is down
}
else{
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}
?>
I tested some websites using this code, and it returns that server response time is around 40 to 120 milliseconds. But when i open these sites its taking me around 2-4 seconds to get the first byte.
The server response time calculated by https://developers.google.com/speed/pagespeed/insights/ is also almost 2-4 seconds. So whats wrong with that code?
我使用以下代码查找服务器响应时间。 p>
&lt;?php
//检查webbserver的响应时间
函数pingDomain($ domain){
$ starttime = microtime(true);
//使用@
$ file = @fsockopen来抑制错误消息 ($ domain,80,$ errno,$ errstr,10);
$ stoptime = microtime(true);
$ status = 0;
if if(!$ file){
$ status = -1 ; //网站已关闭
}
其他{
fclose($ file);
$ status =($ stoptime - $ starttime)* 1000;
$ status = floor($ status);
} \ n返回$ status;
}
?&gt;
code> pre>
我使用此代码测试了一些网站,并返回服务器响应时间大约为40到120 毫秒。 但是当我打开这些网站时,我花了大约2-4秒来获取第一个字节。 p>
服务器响应时间由 https://developers.google.com/speed/pagespeed/insights/ 也差不多2-4秒。 那个代码怎么了? p>
div>
You make no HTTP request to the server, but open a socket. What you are measuring here is not a server response time but a connection time.
You can try to load a page to get total connection, response, and data transfer time, e.g.:
file_get_contents("http://$domain/")
To retrieve header only:
get_headers("http://$domain/")
Or you can use curl for even more control.