У меня есть простой сервер 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,4 кБ (1,2 кБ при сжатии).
При тестировании на другой скорости сети (с помощью инструментов dev) я получаю это неожиданное поведение:
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
Я не думаю, что время загрузки должно увеличиваться, когда скорость сети увеличивается после 250 кбит/с. Что происходит?
Снова посмотрим, что произойдет, если я удалю сжатие:
var app = require('express')();
app.get('/', function(request, response) {
response.send('<!DOCTYPE html>.......');
}
app.listen(2345);
Теперь файл составляет всего 2,4 КБ и посмотрите время ожидания/загрузки:
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
Ответ с содержимым, отличным от gzipped (и заголовком длины контуров), кажется, все в порядке, но ответ с gzipped-содержимым (с заголовком с кодировкой передачи) не выглядит нормально. это все о?
Я настоятельно рекомендую вам симулировать подобный тест самостоятельно с любыми инструментами, которые вам нравятся, и сами увидеть результаты, прежде чем сказать, что мой бенчмарк неверен и что это невозможно. И если вы получите разные результаты, поделитесь ими.