Среди современных программ упаковки есть с одной стороны такие, что ориентированы на максимальное сжатие, но имеют недопустимо малую скорость (1-100 кб/с): paq, uda, durilca, slim; а с другой стороны есть предлагающие умеренное сжатие при высокой скорости и функциональности: rar, sbc. Между ними находятся программы, кредо которых можно определить как максимальное практическое сжатие. Это WinRK/rolz3, LPAQ, CCM(X), UHARC, FreeArc, 7-zip, Squeez и DURILCA'light. Я постарался расположить их в порядке убывания сжатия, но надо заметить, что это достаточно плотная группа – без учёта мультимедиа-сжатия, разница в размерах архивов между ними находится в пределах 10%, и результаты сжатия могут больше зависеть от конкретных сжимаемых данных, нежели от общих тенденций. Замечу также, что lpaq, ccm, ppmd, durilca, uharc –mx – это симметричные алгоритмы (т.е. им для распаковки нужно столько же времени, сколько и для упаковки), а остальные – асимметричные (распаковка идёт в 10 и более раз быстрее упаковки). Кстати говоря, все приведённые в этой статье скорости работы относятся к современным двухядерным процессорам с частотой порядка 2.5 ГГц. Теперь перейдём к характеристикам отдельных программ.
WinRK поддерживает много алгоритмов сжатия, нас сейчас интересует только ROLZ3 в варианте Best Asymmetric, обеспечивающий наилучшее сжатие с приемлемой скоростью распаковки (>100 кб/с). По сравнению с ccm и uharc он сжимает данные медленнее, зато распаковывает быстрее (порядок скоростей: упаковка 400 кб/с, распаковка 2мб/с). WinRK также поддерживает SFX, многотомность, шифрование. У него великолепный GUI. Словом, WinRK выглядит просто замечательной программой. У него всего один недостаток – он не работает. В моих тестах в 10-20% случаев он вылетал при создании архива или не мог распаковать его. Возможно, вам повезёт больше (я сжимал большие наборы файлов), но я настоятельно рекомендую не использовать WinRK. Увы, автор забросил работу над программой.
LPREPAQ: это LPAQ, дополненный библиотеками precomp и PackJPG для перепаковки уже сжатых данных (zip, pdf, gif, jpg и т.д.).
LPAQ: симметричный алгоритм со скоростью порядка 350 кб/с. Пофайловый упаковщик, что означает, что вам придётся использовать TAR для создания архивов. Наилучшие результаты показывает на текстовых файлах, заметно обходя все остальные программы этой группы. Единственная, помимо 7-zip, программа в группе, не включающая мультимедиа-сжатие.
CCMX: симметричный алгоритм со скоростью порядка 800 кб/с. Пофайловый упаковщик.
CCM: симметричный алгоритм со скоростью порядка 1 мб/с, уступает CCMX в сжатии 1-3%.
UHARC: в режиме –m3 безнадёжно отстаёт от 7-zip, поэтому интерес представляет только высший режим сжатия –mx. Это симметричный алгоритм со скоростью порядка 400 кб/с. Максимальный размер словаря – всего 32 мб, поэтому на больших объёмах данных (сотни мб) UHARC по степени сжатия сдвигается к нижнему краю спектра (среди других рассмотренных здесь программ). Архиватор с базовым набором возможностей и поддержкой SFX. Нет обновления архивов. Общий объём данных в архиве ограничен 2 Гб. Есть несколько независимых GUI-оболочек, делающих удобной работу с его архивами.
FreeArc 0.40: поддерживает алгоритмы сжатия LZMA и PPMD с автоматическим выбором между ними (по расширению файла) плюс дополнительные фильтры, поэтому обходит 7-zip по степени и скорости сжатия: 1 мб/с упаковка, 2-20 мб/с распаковка (медленнее для PPMD, быстрее для LZMA). Используемые в нём приёмы (интеллектуальная сортировка файлов, поиск совпадений на дистанции до 1 гб) делают его наиболее эффективным на больших объёмах данных, где он сдвигается к верхней границе группы. Поскольку выбор метода сжатия проводится на основе анализа расширений файлов – сдаёт при сжатии файлов необычных типов или с отсутствующими расширениями. Полноценный архиватор с быстрым обновлением солид-архивов, навороченным шифрованием, recovery record, плагинами для FAR и Total Commander, unix-версией и кучей других возможностей, но по надёжности всё ещё далёк от 7-zip.
FreeArc 0.36: поддерживает алгоритмы сжатия LZMA и PPMD с автоматическим выбором между ними (по расширению файла), плюс дополнительные фильтры, поэтому обходит 7-zip по степени и скорости сжатия: 1 мб/с упаковка, 2-20 мб/с распаковка (медленнее для PPMD, быстрее для LZMA). Используемые в нём приёмы (интеллектуальная сортировка файлов, поиск совпадений на дистанции до 1 гб) делают его наиболее эффективным на больших объёмах данных, где он сдвигается к верхней границе группы. Поскольку выбор метода сжатия проводится на основе анализа расширений файлов – сдаёт при сжатии файлов необычных типов или с отсутствующими расширениями. Полноценный архиватор с быстрым обновлением солид-архивов, recovery record и кучей других возможностей, но по функциональности и надёжности всё ещё далёк от 7-zip.
7-ZIP: используемый по умолчанию алгоритм LZMA резко асимметричен (600 кб/с упаковка, 30 мб/с распаковка). Текстовые файлы лучше сжимает PPMD, который является симметричным алгоритмом (1.5 мб/с), к сожалению автоматический выбор алгоритма сжатия в программе не реализован. 64-битная версия 7-zip может создавать архивы со словарём до 1 Гб, которые затем могут быть распакованы 32-битной версией программы. 7-zip имеет полнофункциональный, хотя довольно аскетичный GUI; 64-битную и linux версии; поддерживает sfx/installer, шифрование, многотомность, солид-архивы с регулируемым размером блока. Такое сочетание высокой функциональности и надёжности, высокой степени сжатия, быстрой распаковки сделало 7-zip наиболее популярным архиватором из всех рассматриваемых здесь.
SQUEEZ: 400 кб/с упаковка, 10 мб/с распаковка. Основной алгоритм – модификация алгоритма LHA со словарём до 32 мб, дополненный PPMD для текстов и кучей фильтров с автоматическим переключением между всеми ними. Полноценный архиватор с приятным GUI и 64-битной версией. Поддерживает весь современный джентльменский набор возможностей: шифрование, многотомность, recovery record, sfx, аутенфикацию (цифровую подпись) архивов, логфайл. Единственная платная программа в группе, не считая WinRK.
DURILCA'light: почти симметричный алгоритм со скоростью порядка 1.5 мб/с. Представляет собой алгоритм PPMD с дополнительными препроцессорами, увеличивающими степень сжатия текстовых, исполняемых, мультимедийных, табличных данных. При использовании опции –t1 перед упаковкой данных производится их переупорядочивание, что увеличивает степень сжатия, но вчетверо снижает скорость упаковки (скорость распаковки остаётся прежней и даже чуть вырастает). Этот режим позволяет успешно бороться с tar-файлами, в которых данные различных типов могут располагаться вперемешку. Пофайловый упаковщик.
Теперь рассмотрим результаты тестов. Для сравнения в них также включены архиваторы из других групп – как нацеленные на максимальное сжатие, так и более быстрые.
Первая таблица составлена на основании теста Squeeze Chart. Я взял из неё только результаты тестов без использования препроцессоров ecm/precomp, чтобы поставить все программы в одинаковые условия. Кроме того, я вычел из итогов результаты на мультимедиа-файлах, поскольку их сжатие – это отдельная большая тема. Таким образом, получилось прямое сравнение различных архиваторов на достаточно типичных наборах данных. Однако даже в таком виде нельзя говорить, что представленная таблица отражает истину в последней инстанции. Это всего лишь результаты тестов на больших объёмах преимущественно бинарных данных:
Архиватор |
Время упаковки, сек. |
Результат, байт |
|
Версия |
Режим упаковки |
|
Сверхплотные |
||||||
PAQ8o |
533.080 |
941.221.391 |
|
SSE2v2 |
-7 |
|
WinRK |
334.566 |
945.147.315 |
|
3.0b3 |
maximum |
|
UDA |
95.597 |
1.021.501.223 |
|
0.301 |
|
|
Durilca |
|
1.053.264.573 |
|
0.5 |
-m1400 -o13 |
|
SLIM |
|
1.165.964.430 |
|
23d |
-m800 -o16 |
|
Плотные |
|
|
|
|
|
|
WinRK |
13.430 |
1.017.124.184 |
|
3.0b3 |
rolz-3 650mb |
|
FreeArc |
3.483 |
1.043.288.254 |
|
0.40 |
-mx |
|
LPAQ |
14.832 |
1.044.521.483 |
|
1 |
8 |
|
CCMX |
6.099 |
1.047.940.335 |
|
1.23 |
c7 |
|
FreeArc |
6.283 |
1.059.427.416 |
|
0.36 |
-m7 |
|
7-zip |
4.080 |
1.071.093.196 |
|
4.47 |
lzma:128mb/ppmd:1gb |
|
Squeez |
12.709 |
1.093.341.205 |
|
5.6 |
32mb ultra |
|
UHARC |
11.904 |
1.113.177.847 |
|
0.6b |
-mx –md32768 |
|
Быстрые |
|
|
|
|
|
|
SBC |
6.503 |
1.214.428.222 |
|
0.970 |
-m3 -b63 -os |
|
WinRar |
2.448 |
1.304.466.153 |
|
3.70b5 |
-m5 |
|
WinZip |
3.048 |
1.422.735.061 |
|
11.1 |
|
|
Вторая таблица составлена из препарированных аналогичным образом данных с http://maxcompress.narod.ru/. Особенностями этого теста являются сравнительно небольшие размеры сжимаемых файлов и засилье исполняемых файлов, которые составляют почти половину тестовых данных. В результате этого LPAQ и FreeArc опустились вниз, а UHARC поднялся вверх, как и две программы, имеющие хорошие специализированные алгоритмы сжатия исполняемых файлов – Durilca/Durilca’Light и 7-zip. Заметим, что WinRK и CCMX сохранили лидерство в своей группе – это программы, которые показывают стабильно высокие результаты в любой ситуации. В этом тесте WinRAR демонстрирует неплохие результаты, но не надо забывать, что по мере роста объёма сжимаемых данных WinRAR будет всё больше отставать от представителей нашей группы из-за своего скромного размера словаря. В данном тесте скорость измерялась на одноядерном Celeron 2.8 ГГц:
Архиватор |
Скорость упаковки, кб/с |
Скорость распаковки, кб/с |
Результат, байт |
Paq 8 K (-8) |
1 |
1 |
12.309.664 |
Durilca 0.5 |
81 |
83 |
12.842.139 |
Slim 0.23d |
27 |
27 |
12.886.744 |
UDA 0.301 |
21 |
21 |
13.288.040 |
WinRK 3.0.3b Asymmetric |
80 |
300 |
13.965.155 |
Durilca 0.5 Light |
625 |
860 |
14.327.293 |
CCMx 1.23 (c 6) |
420 |
420 |
14.341.157 |
CCM 1.23 (c 6) |
500 |
500 |
14.474.879 |
Uharc 0.6b |
270 |
320 |
14.585.826 |
Lpaq1 (8) |
185 |
180 |
14.634.505 |
7-zip 4.52b |
710 |
2900 |
14.635.135 |
FreeArc 0.40b |
810 |
3800 |
14.849.852 |
Squeez 5.6 |
175 |
2300 |
14.904.005 |
WinRAR 3.70 |
1013 |
1600 |
15.146.720 |
Uharc 0.6b (-m3) |
380 |
2800 |
15.442.355 |
SBC 0.970rev2 |
760 |
1900 |
16.036.996 |
WinZip 11.1 (optimize) |
1100 |
1100 |
16.069.337 |
Наконец, за недостатком места просто перечислю, в каком порядке финишировали архиваторы в моём собственном тесте текстового сжатия: LPAQ, CCMX, CCM, FreeArc, UHARC, Durilca’Light, 7-zip. Этот тест содержит наборы данных среднего размера (30-100 мб) и включает наиболее распространённые типы текстовых данных – html, исходники и художественные тексты.
Ну и напоследок традиционная колонка советов: если вам нужно максимальное сжатие – берите CCMX. Оптимальное сочетание степени и скорости сжатия – CCM или FreeArc. Куча возможностей, GUI, надёжность и скорость – 7-zip. Максимальный набор возможностей и приятный GUI – Squeez.