在 PHP 中查找服务器响应时间
Find server response time in PHP
我正在使用以下代码查找服务器响应时间。
<?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;
}
?>
我使用此代码测试了一些网站,returns服务器响应时间约为 40 到 120 毫秒。但是当我打开这些网站时,我需要大约 2-4 秒才能获得第一个字节。
https://developers.google.com/speed/pagespeed/insights/计算出来的服务器响应时间也差不多2-4秒。那么该代码有什么问题?
您没有向服务器发出 HTTP 请求,但打开了一个套接字。您在这里测量的不是服务器响应时间而是连接时间。
您可以尝试加载页面以获得总连接、响应和数据传输时间,例如:
file_get_contents("http://$domain/")
仅检索 header:
get_headers("http://$domain/")
或者您可以使用 curl 进行更多控制。
我正在使用以下代码查找服务器响应时间。
<?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;
}
?>
我使用此代码测试了一些网站,returns服务器响应时间约为 40 到 120 毫秒。但是当我打开这些网站时,我需要大约 2-4 秒才能获得第一个字节。
https://developers.google.com/speed/pagespeed/insights/计算出来的服务器响应时间也差不多2-4秒。那么该代码有什么问题?
您没有向服务器发出 HTTP 请求,但打开了一个套接字。您在这里测量的不是服务器响应时间而是连接时间。
您可以尝试加载页面以获得总连接、响应和数据传输时间,例如:
file_get_contents("http://$domain/")
仅检索 header:
get_headers("http://$domain/")
或者您可以使用 curl 进行更多控制。