97 lines
4.6 KiB
Bash
Executable File
97 lines
4.6 KiB
Bash
Executable File
#!/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 "=============================================="
|