我有一个简单的 Node.js 服务器,例如:
var app = require('express')();
var compression = require('compression');
app.use(compression());
app.get('/', function(request, response) {
response.send('<!DOCTYPE html>.......');
}
app.listen(2345);
我发送的 html 是 2.4kB(压缩后为 1.2kB)。
当在不同的网络速度上进行测试时(使用开发工具),我得到了这种意外的行为:
50kbps: Latency 600ms, download 1ms
250kbps: Latency 300ms, download 0.6ms
750kbps: Latency 100ms, download 100ms
2Mbps: Latency 10ms, download 200ms
32Mbps: Latency 5ms, download 210ms
我认为当网络速度在 250kbps 之后增加时,下载时间不会增加。到底是怎么回事?
再次看看如果我删除压缩会发生什么:
var app = require('express')();
app.get('/', function(request, response) {
response.send('<!DOCTYPE html>.......');
}
app.listen(2345);
现在文件只有 2.4kB,看看延迟/下载时间:
50kbps: Latency 550ms, download 230ms
250kbps: Latency 350ms, download 50ms
750kbps: Latency 120ms, download 15ms
2Mbps: Latency 35ms, download 6ms
32Mbps: Latency 4ms, download 0.5ms
非 gzip 压缩内容(和内容长度标头)的响应似乎没问题,但 gzip 压缩内容(带有传输编码分块标头)的响应似乎不好。
这是怎么回事?
我强烈鼓励您使用任何您喜欢的工具自己模拟类似的测试,并亲自查看结果,然后再说我的基准测试是错误的并且这是不可能的。如果您得到不同的结果,请分享。