#!/bin/bash # ============================================================================== # Сравнение режимов замера скорости: без сжатия vs с gzip # ============================================================================== # Этот скрипт демонстрирует разницу между измерением реальной скорости канала # и эффективной скорости с учётом HTTP-сжатия # ============================================================================== echo "==============================================" echo "Сравнение режимов замера скорости" echo "==============================================" echo "" # URL для тестирования - желательно файл, который хорошо сжимается # Например, HTML, JSON, текст. Бинарные файлы (изображения, архивы) сжимаются плохо. URL="${1:-https://www.wikipedia.org/}" echo "URL: $URL" echo "" echo "Выполняем 2 теста (по 2 запроса каждый)..." echo "" # Тест 1: БЕЗ сжатия (реальная скорость интернет-канала) echo "1️⃣ Режим: БЕЗ HTTP-сжатия (реальная скорость канала)" echo " ./speed_test.sh -n 2 \"$URL\"" echo "" speed_no_gzip=$(./speed_test.sh -q -n 2 "$URL" 2>/dev/null) if [ $? -eq 0 ]; then echo " ✅ Результат: ${speed_no_gzip} МБ/с" else echo " ❌ Ошибка измерения" speed_no_gzip="0" fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Тест 2: С сжатием (эффективная скорость передачи данных) echo "2️⃣ Режим: С HTTP-сжатием (эффективная скорость)" echo " ./speed_test.sh -g -n 2 \"$URL\"" echo "" speed_with_gzip=$(./speed_test.sh -q -g -n 2 "$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 "=============================================="