#!/bin/bash # ============================================================================== # Сравнение режимов замера скорости: без сжатия vs с gzip # ============================================================================== # Этот скрипт демонстрирует разницу между измерением реальной скорости канала # и эффективной скорости с учётом HTTP-сжатия # ============================================================================== echo "==============================================" echo "Сравнение режимов замера скорости" echo "==============================================" echo "" # URL для тестирования - желательно файл, который хорошо сжимается # Например, HTML, JSON, текст. Бинарные файлы (изображения, архивы) сжимаются плохо. URL="${1:-https://github.com/erjemin/2026-test-labor-02}" echo "URL: $URL" echo "" echo "Выполняем 2 теста (по 5 запросов каждый)..." echo "" # Тест 1: БЕЗ сжатия (реальная скорость интернет-канала) echo " Режим: БЕЗ HTTP-сжатия (реальная скорость канала)" echo " ./speed_test.sh -n 5 \"$URL\"" echo "" speed_no_gzip=$(bash speed_test.sh -q -n 5 "$URL" 2>/dev/null) if [ $? -eq 0 ]; then echo " Результат: ${speed_no_gzip} МБ/с" else echo " Ошибка измерения" speed_no_gzip="0" fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Тест 2: С сжатием (эффективная скорость передачи данных) echo " Режим: С HTTP-сжатием (эффективная скорость)" echo " ./speed_test.sh -g -n 5 \"$URL\"" echo "" speed_with_gzip=$(bash speed_test.sh -q -g -n 5 "$URL" 2>/dev/null) if [ $? -eq 0 ]; then echo " Результат: ${speed_with_gzip} МБ/с" else echo " Ошибка измерения" speed_with_gzip="0" fi echo "" echo "==============================================" echo "Итоги сравнения:" echo "==============================================" echo "" echo "Без сжатия (реальный канал): ${speed_no_gzip} МБ/с" echo "С сжатием (эффективная): ${speed_with_gzip} МБ/с" echo "" # Вычисляем разницу если оба теста успешны if (( $(echo "$speed_no_gzip > 0" | bc -l) )) && (( $(echo "$speed_with_gzip > 0" | bc -l) )); then if (( $(echo "$speed_with_gzip > $speed_no_gzip" | bc -l) )); then ratio=$(echo "scale=2; $speed_with_gzip / $speed_no_gzip" | bc) improvement=$(echo "scale=1; ($speed_with_gzip - $speed_no_gzip) / $speed_no_gzip * 100" | bc) echo "Выигрыш от сжатия: ${ratio}x (${improvement}% быстрее)" echo "" echo "Интерпретация:" echo " • Реальная пропускная способность канала: ${speed_no_gzip} МБ/с" echo " • Благодаря HTTP-сжатию вы получаете данные эффективно," echo " как если бы канал был быстрее в ${ratio}x раз!" echo "" echo "Это полезно для:" echo " - Загрузки веб-страниц (HTML, CSS, JS)" echo " - API с JSON-ответами" echo " - Текстовых файлов" elif (( $(echo "$speed_no_gzip > $speed_with_gzip" | bc -l) )); then diff=$(echo "scale=2; $speed_no_gzip - $speed_with_gzip" | bc) echo "Скорость с сжатием немного ниже (разница: ${diff} МБ/с)" echo "" echo "Возможные причины:" echo " • Файл плохо сжимается (картинки, видео, архивы)" echo " • Накладные расходы на сжатие/распаковку" echo " • Вариация скорости сети между измерениями" else echo "Скорости примерно одинаковы - файл, вероятно, не сжимается" fi else echo " Не удалось выполнить сравнение" fi echo "" echo "=============================================="