English

Russian

SourceForge.net Logo

 

Максимальное практическое сжатие: WinRK, LPAQ, CCM(x), UHARC, FreeArc, 7-zip, Squeez и Durilca'Light

Среди современных программ упаковки есть с одной стороны такие, что ориентированы на максимальное сжатие, но имеют недопустимо малую скорость (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, DurilcaLight, 7-zip. Этот тест содержит наборы данных среднего размера (30-100 мб) и включает наиболее распространённые типы текстовых данных – html, исходники и художественные тексты.

 

Ну и напоследок традиционная колонка советов: если вам нужно максимальное сжатие – берите CCMX. Оптимальное сочетание степени и скорости сжатия – CCM или FreeArc. Куча возможностей, GUI, надёжность и скорость – 7-zip. Максимальный набор возможностей и приятный GUI – Squeez.