Что эффективнее: LZMA2 vs BZIP2 vs Deflate vs RAR?
Когда возникает необходимость архивации данных, любой архиватор начинает предлагать множество настроек, и даже у подготовленного пользователя однозначно возникнут вопросы о том, какие настройки стоит использовать, для достижения наилучшего результата.

Я провела небольшое сравнение, для того чтобы выявить влияние алгоритма сжатия на получаемый результат. В качестве данных для эксперимента я взяла директорию со своими документами, содержащую в себе как текстовые файлы, так и бинарные данные, в лице изображений, PDF-документов, а также баз данных.
Методика тестирования
В качестве исходных данных была взята директория, содержащая следующие файлы:
- Текстовые файлы в форматах .txt, .vim, .conf, .js, .html, .xml, .json, .css (и прочие) — 7446 штук, общим объёмом в 116,604,636 байт
- Файлы .doc и .docx — 44 штуки, общим объёмом в 76,623,872 байт
- Документы .pdf — 136 штук, объёмом 162,783,232 байт
- Изображения в формате .png — 955 элементов, объёмом 104,939,520 байт
- Изображения в формате .jpg — 169 штук, объёмом 125,153,280 байт
- Бинарные файлы — не менее 28 штук, объёмом 392,192,512 байт
- Прочие файлы — 3696 штук, объёмом 5,450,960,676 байт
Всего — 12,474 файла, объёмом 6,304,104,448 байт.
В качестве программ для архивации данных были использованы:
- 7-Zip версии 22.01 — Для алгоритмов (Deflate, LZMA2, BZIP2)
- WinRAR версии 6.21 (Для алгоритма RAR)
В данном исследовании мы не будем рассматривать принципы работы каждого из алгоритмов, а также не будем учитывать их временную эффективность. Все алгоритмы были ограничены допустимым использованием ОЗУ для сжатия в 8192 Мб. В качестве уровня компрессии всегда использовался максимально допустимый параметр.
Для контейнера ZIP использовались алгоритмы Deflate и BZIP2. Для RAR — одноименный алгоритм. Для алгоритма LZMA2 использовался контейнер 7z.
Какой алгоритм сжатия оказался эффективнее?
По итогам сжатия я получила следующие результаты:

Не забывайте, что для коэффициента сжатия меньше — значит лучше.
- BZIP2 — 2,883,614 Килобайта (Коэффициент сжатия 0.468)
- Deflate — 3,005,750 Килобайт (Коэффициент сжатия 0.488)
- LZMA2 — 2,095,769 Килобайт (Коэффициент сжатия 0.34)
- RAR — 2,582,446 Килобайта (Коэффициент сжатия 0.419)
Из этого можно сделать следующие выводы: не стоит использовать контейнер .zip, если в первую очередь вас интересует максимальная эффективность сжатия. Лучше всего использовать контейнеры 7z с алгоритмом сжатия LZMA2, а также RAR с одноименным алгоритмом.