Performance 比较两个GET请求之间的延迟

Performance 比较两个GET请求之间的延迟,performance,networking,latency,Performance,Networking,Latency,我在一个网站上工作,该网站的请求页面需要首先通过反向代理,因为域上的某些路径应该路由到其他web主机 我想让静态资产(CSS、JS、图像)加载得非常快,我的想法是让这些请求进入代理的额外“步骤”是增加延迟。这些静态资产没有理由通过代理路由 我可以通过让我的站点通过单独的域(直接指向web主机)为静态资产提供服务来实现此设置: www.sample.com-->反向代理-->web主机 assets.sample.com-->web主机 在我完成这个增加了一点复杂性的设置之前(我必须修改站点,以便

我在一个网站上工作,该网站的请求页面需要首先通过反向代理,因为域上的某些路径应该路由到其他web主机

我想让静态资产(CSS、JS、图像)加载得非常快,我的想法是让这些请求进入代理的额外“步骤”是增加延迟。这些静态资产没有理由通过代理路由

我可以通过让我的站点通过单独的域(直接指向web主机)为静态资产提供服务来实现此设置:

www.sample.com-->反向代理-->web主机 assets.sample.com-->web主机

在我完成这个增加了一点复杂性的设置之前(我必须修改站点,以便它知道将路径输出到具有不同域的资产),我想确保它是值得的

如何准确地衡量反向代理对请求响应时间的影响

我创建了这个简单的PHP脚本,但我想知道这是否是一个好方法:

$with_proxy = get_average_response_time('https://www.example.com/path/to/asset.jpg');
$without_proxy = get_average_response_time('https://assets.example.com/path/to/asset.jpg');

echo "difference: " . $with_proxy - $without_proxy;

function get_average_response_time($url) {
    $total = 0;
    $amount = 50;
    for ($i = 0; $i < $amount; $i++) {
        $start = milliseconds();
        file_get_contents($url);
        $total += milliseconds() - $start;
    }

    return $total / $amount;
}

function milliseconds() {
    $mt = explode(' ', microtime());
    return ((int)$mt[1]) * 1000 + ((int)round($mt[0] * 1000));
}
$with_proxy=get_average_response_time('https://www.example.com/path/to/asset.jpg');
$without\u proxy=获取\u平均响应时间('https://assets.example.com/path/to/asset.jpg');
回声“差异:”$有_代理-$无_代理;
函数获取平均响应时间($url){
$total=0;
$amount=50;
对于($i=0;$i<$amount;$i++){
$start=毫秒();
文件获取内容($url);
$total+=毫秒()-$start;
}
返回$total/$amount;
}
函数毫秒(){
$mt=爆炸(“”,microtime());
返回((整数)$mt[1])*1000+((整数)轮($mt[0]*1000));
}

取决于您在
文件中拥有什么内容\u获取\u内容
。您可能希望从单独的主机(而不是为您的文件提供服务的主机)运行此脚本。您还需要确保此函数不使用缓存

不过,一般的经验法则是,您应该通过CDN服务提供静态资源,这可以确保整个web上的客户端的延迟相对较低。设置这个不应该是很多工作