add: версия bash

This commit is contained in:
2026-06-22 22:38:29 +03:00
parent 1e65645865
commit 07db8ea436
6 changed files with 910 additions and 0 deletions

96
bash/compare_modes.sh Executable file
View File

@@ -0,0 +1,96 @@
#!/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 "=============================================="