我使用以下代码查找服务器响应时间。
<?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;
}
?>
我使用此代码测试了一些网站,并返回服务器响应时间大约40到120毫秒。但是当我打开这些网站时,我花了大约2-4秒来获取第一个字节。
https://developers.google.com/speed/pagespeed/insights/计算的服务器响应时间也差不多2-4秒。那个代码怎么了?
答案 0 :(得分:0)
您没有向服务器发出HTTP请求,而是打开套接字。您在此处测量的不是服务器响应时间,而是连接时间。
您可以尝试加载页面以获得总连接,响应和数据传输时间,例如:
file_get_contents("http://$domain/")
仅检索标题:
get_headers("http://$domain/")
或者您可以使用curl进行更多控制。