Сравнительное тестирование
восьми современных архиваторов


Содержание

Введение

Архиваторы – это программы для создания архивов. Архивы предназначены для хранения данных в удобном компактном виде. В качестве данных обычно выступают файлы и папки. Как правило, данные предварительно подвергаются процедуре сжатия или упаковки. Поэтому почти каждый архиватор одновременно является программой для сжатия данных. С другой стороны, любая программа для сжатия данных может рассматриваться как архиватор. Эффективность сжатия является важнейшей характеристикой архиваторов. От нее зависит размер создаваемых архивов. Чем меньше архив, тем меньше места требуется для его хранения. Для передачи нужна меньшая пропускная способность канала передачи или затрачивается меньшее время. Преимущества архивов очевидны, если учесть, что данные уменьшаются в размере и в 2 раза, и в 5 раз.

Сжатие данных используется очень широко. Можно сказать, почти везде. Например, документы PDF, как правило, содержат сжатую информацию. Довольно много исполняемых файлов EXE сжаты специальными упаковщиками. Всевозможные мультимедийные файлы (GIF, JPG, MP3, MPG) являются своеобразными архивами.

Основным недостатком архивов является невозможность прямого доступа к данным. Их сначала необходимо извлечь из архива или распаковать. Операция распаковки, впрочем, как и упаковки, требует некоторых системных ресурсов. Это не мгновенная операция. Поэтому архивы в основном применяют со сравнительно редко используемыми данными. Например, для хранения резервных копий или установочных файлов.

В данный момент существует много архиваторов. Они имеют разную распространенность и эффективность. Некоторые интересные архиваторы не известны широкому кругу потенциальных пользователей. Особый интерес представляют оценка и сравнение эффективности сжатия популярных архиваторов.

Методы сжатия

Разработано большое количество разнообразных методов, их модификаций и подвидов для сжатия данных. Современные архиваторы, как правило, одновременно используют несколько методов одновременно. Можно выделить некоторые основные.

Кодирование длин серий (RLE - сокращение от run-length encoding - кодирование длин серий)

Очень простой метод. Последовательная серия одинаковых элементов данных заменяется на два символа: элемент и число его повторений. Широко используется как дополнительный, так и  промежуточный метод. В качестве самостоятельного метода применяется, например, в графическом формате BMP.

Словарный метод (LZ - сокращение от Lempel Ziv - имена авторов)

Наиболее распространенный метод. Используется словарь, состоящий из последовательностей данных или слов. При сжатии эти слова заменяются на их коды из словаря. В наиболее распространенном варианте реализации в качестве словаря выступает сам исходный блок данных.

Основным параметром словарного метода является размер словаря. Чем больше словарь, тем больше эффективность. Однако для неоднородных данных чрезмерно большой размер может быть вреден, так как при резком изменении типа данных словарь будет заполнен неактуальными словами. Для эффективной работы данного метода при сжатии требуется дополнительная память. Приблизительно на порядок больше, чем нужно для исходных данных словаря. Существенным преимуществом словарного метода является простая и быстрая процедура распаковки. Дополнительная память при этом не требуется. Такая особенность особенно важна, если необходим оперативный доступ к данным.

Энтропийный метод (Huffman - кодирование Хаффмена, Arithmetic coding - арифметическое кодирование)

В этом методе элементы данных, которые встречаются чаще, кодируются при сжатии более коротким кодом, а более редкие элементы данных кодируются более длинным кодом. За счет того, что коротких кодов значительно больше, общий размер получается меньше исходного.

Широко используется как дополнительный метод. В качестве самостоятельного метода применяется, например, в графическом формате JPG.

Метод контекстного моделирования (CM - сокращение от context modeling - контекстное моделирование)

В этом методе строится модель исходных данных. При сжатии очередного элемента данных эта модель выдает свое предсказание или вероятность. Согласно этой вероятности, элемент данных кодируется энтропийным методом. Чем точнее модель будет соответствовать исходным данным, тем точнее она будет выдавать предсказания, и тем короче будут кодироваться элементы данных.

Для построения эффективной модели требуется много памяти. При распаковке приходится строить точно такую же модель. Поэтому скорость и требования к объему оперативной памяти для упаковки и распаковки почти одинаковы. В данный момент методы контекстного моделирования позволяют получить наилучшую степень сжатия, но отличаются чрезвычайно низкой скоростью.

PPM (PPM - Prediction by Partial Matching - предсказание по частичному совпадению)

Это особый подвид контекстного моделирования. Предсказание выполняется на основании определенного количества предыдущих элементов данных. Основным параметром является порядок модели, который задает это количество элементов. Чем больше порядок модели, тем выше степень сжатия, но требуется больше оперативной памяти для хранения данных модели. Если оперативной памяти недостаточно, то такая модель с большим порядком показывает низкие результаты. Метод PPM особенно эффективен для сжатия текстовых данных.

Предварительные преобразования или фильтрация

Данные методы служат не для сжатия, а для представления информации в удобном для дальнейшего сжатия виде. Например, для несжатых мультимедиа данных характерны плавные изменения уровня сигнала. Поэтому для них применяют дельта-преобразование, когда вместо абсолютного значения берется относительное. Существуют фильтры для текста, исполняемых файлов, баз данных и другие.

Метод сортировки блока данных (BWT - сокращение от Burrows Wheeler Transform - по имени авторов)

Это особый вид или группа преобразований, в основе которых лежит сортировка. Такому преобразованию можно подвергать почти любые данные. Сортировка производится над блоками, поэтому данные предварительно разбиваются на части. Основным параметром является размер блока, который подвергается сортировке. Для распаковки данных необходимо проделать почти те же действия, что и при упаковке. Поэтому скорость и требования к оперативной памяти почти одинаковы. Архиваторы, которые используют данный метод, обычно показывают высокую скорость и степень сжатия для текстовых данных.

Непрерывные блоки или непрерывный режим (Solid mode - непрерывный режим)

Во многих методах сжатия начальный участок данных или файла кодируется плохо. Например, в словарном методе словарь пуст. В методе контекстного моделирования модель не построена. Когда количество файлов большое, а их размер маленький, общая степень сжатия значительно ухудшается за счет этих начальных участков. Чтобы этого не происходило при переходе на следующий файл, используется информация, полученная исходя из предыдущих файлов. Аналогичного эффекта можно добиться простым представлением исходных файлов в виде одного непрерывного файла.

Этот метод используется во многих архиваторах и имеет существенный недостаток. Для распаковки произвольного файла необходимо распаковать и файлы, которые оказались в начале архива. Это необходимо для правильного заполнения словаря или построения модели. Существует и промежуточный вариант, когда используются непрерывные блоки фиксированного размера. Потери сжатия получаются минимальными, но для извлечения одного файла, который находится в конце большого архива, необходимо распаковать только один непрерывный блок, а не весь архив.

Сегментирование

Во всех методах сжатия при изменении типа данных собственно сам переход кодируется очень плохо. Словарь становится не актуальным, модель настроена на другие данные. В этих случаях применяется сегментирование. Это предварительная разбивка на однородные части. Затем эти части кодируются по отдельности или группами.

Особо хочется подчеркнуть, что существует большое количество методов сжатия. Каждый метод обычно ориентирован на один вид или группу реальных данных. Хорошие результаты показывает комплексное использование методов. Более подробно с методами сжатия можно ознакомиться, например, на .

Особенности данных

Степень сжатия в основном зависит от исходных данных. Хорошо сжимаются почти все предварительно несжатые данные, например, исполняемые файлы (EXE), тексты (TXT, DOC), базы данных (DBF), простые несжатые изображения (BMP). Ограниченно сжимаются несжатый звук (WAV), сложные несжатые изображения (BMP). Не сжимаются почти все уже сжатые данные, например, архивы (ZIP, CAB), сжатые документы (PDF), сжатая графика и видео (JPG, GIF, AVI, MPG), сжатый звук (MP3). Их сжатие находится в пределах пары процентов за счет служебных блоков и небольшой избыточности.

Для сжатия некоторых специфических данных (текст, несжатые изображения, несжатый звук) существуют специальные методы и архиваторы. Такие архиваторы обеспечивают высокую степень сжатия и высокую скорость. Однако так называемые универсальные архиваторы постепенно дополняются подобными методами. В данный момент только для несжатого звука существуют высокоэффективные специальные архиваторы, такие, как OptimFROG, Monkey Audio. Для текстов и изображений лучшие универсальные архиваторы показывают лучшую степень сжатия. Например, архив изображений получится меньше, если использовать формат BMP и архиватор WinRK вместо специализированных графических форматов, таких как JPEG2000 (LossLess - сжатие без потерь).

Большое количество типов данных уже являются сжатыми. Использование архиваторов дает мизерное уменьшение размера. Тем не менее даже в таких случаях эффективное сжатие теоретически возможно. Это обусловлено тем, что в большинстве распространенных форматов файлов, использующих сжатие, применены не самые эффективные методы. Например, в основе формата JPG лежит энтропийное сжатие, которое используется после преобразований Фурье. Данные кодируются неоптимальными блоками, что обусловлено желанием сделать формат JPG устойчивым к повреждениям и возможности частичного извлечения информации. Перекодировав файлы JPG при помощи высокоэффективных методов, можно добиться сжатия порядка 75% от исходного файла (архиватор StuffIt). Собственно сам исходный файл JPG сжимается обычными архиваторами только до 96%. Однако подобные манипуляции с файлами JPG стали возможны только недавно и еще не получили распространения. В большинстве случаев сжимать уже сжатые данные бесполезно.

Какие существуют архиваторы и чем они отличаются?

Следует различать собственно программу-архиватор, формат архивов и методы сжатия. Даже один и тот же метод сжатия может иметь варианты реализации. Например, существует более десятка программ-архиваторов, которые могут создавать архивы в формате ZIP. В свою очередь данные в формате ZIP могут быть сжаты различными методами: Deflate, Deflate64, BZip2. Метод Deflate имеет несколько реализаций с разной скоростью и степенью сжатия (разница порядка 5%). С помощью этого метода архиватор 7-zip позволяет создавать архивы в формате ZIP и 7Z.

Обычно архиваторы могут создавать архивы в собственном эксклюзивном формате с использованием своих оригинальных методов. Например, архиватор RAR позволяет создавать архивы RAR. В формате архива и методах сжатия заключаются основные преимущества того или иного архиватора.

В простейшем случае архиватор позволяет только упаковать или распаковать один файл. Кроме собственно сжатия данных, современные архиваторы обеспечивают некоторые дополнительные функции. Можно выделить несколько основных:

  • сжатие некоторых файлов и целых директорий;
  • создание самораспаковывающихся (SFX) архивов. То есть для распаковки архива программа-архиватор не требуется;
  • изменение содержимого архива;
  • шифрование содержимого архива;
  • информация для восстановления архива при частичном повреждении и возможность восстановления поврежденных архивов;
  • разбивка архива на несколько частей или томов;
  • консольная версия программы для работы из командной строки;
  • графическая (GUI) версия программы.

Стоит отметить, что, несмотря на формальное наличие, реализация каждой дополнительной функции может быть выполнена на совершенно разном уровне.

Кроме различий в функциональности, можно разбить архиваторы на две группы: асимметричные и симметричные. Асимметричные архиваторы требуют для операции распаковки значительно меньше времени и оперативной памяти, чем для операции упаковки. Это позволяет быстро получать содержимое архива на маломощных компьютерах. Симметричные архиваторы требуют для операций упаковки и распаковки одинаковое время и объем оперативной памяти. Использование таких архиваторов на широком парке компьютеров или для оперативного доступа к содержимому архива ограничено. Известный архиватор RAR в качестве основного использует асимметричный словарный метод сжатия, а для текстов может использовать симметричный PPM-метод. Таким образом, распаковка архивов RAR, сжатых с максимальной степенью сжатия, может быть невозможна на компьютерах с ограниченным объемом оперативной памяти. Все или почти все передовые архиваторы с высокой степенью сжатия являются симметричными.

Точной статистики по распространенности архиваторов у меня нет. Я выскажу свою субъективную точку зрения на основе личного опыта. Безусловно, самым распространенным архиватором являются ZIP и его модификации. По своей распространенности он значительно превосходит ближайших конкурентов. Следом идут RAR и ACE. В последние годы встречается архиватор 7-zip. Других архиваторов и архивов лично мы не встречали. Исключение составляют некогда популярные ARJ и LHA. В данный момент они не актуальны из-за очень низкой степени сжатия.

Несмотря на очень скромные данные о распространенности архиваторов, их существует большое множество. Основная масса относится к категории экспериментальных и архиваторов с ограниченной функциональностью. Тем не менее каждый их них позволяет выполнять собственно процедуру сжатия данных. Меньшая распространенность увеличивает вероятность ошибок в программе. К ним стоит относиться с некоторой осторожностью. Например, при проведении тестирования была найдена ошибка в архиваторе WinRK (PWCM), которую, однако, оперативно исправили.

Тестирование максимальной степени сжатия

В данном тестировании главной целью было определить лучший по степени сжатия архиватор. Скорость сжатия была второстепенна.

Для разностороннего тестирования и выявления сильных и слабых сторон использовалось несколько наборов данных, требующих различных подходов и методов для хорошего сжатия. Их размер выбран достаточно большим, чтобы архиваторы с большим размером словаря или более эффективно использующие оперативную память могли показать свое преимущество. В сжатом при помощи ZIP виде они занимают размер в районе 15 MB.

Для каждого набора данных обычно можно подобрать наиболее оптимальные параметры сжатия. Однако в этом тестировании для всех наборов данных использовались единые параметры и методы, дающие в среднем лучшие результаты исходя из наличия 512 MB оперативной памяти. Такой подход является компромиссным. С одной стороны, можно оценить эффективность на разных типах данных, хотя некоторые архиваторы и не покажут максимальной степени сжатия. С другой стороны, в реальности приходится сжимать целые папки с разнообразными данными, а специфические значения параметров могут влиять как положительно, так и отрицательно на сжатие данных в целом. Кроме того, подбор оптимальных параметров не так прост, занимает много времени и в реальной жизни выполняется редко.

Стоит подчеркнуть, что выбор исходных данных очень сильно влияет на результаты тестирования. Например, при использовании текстовых (TXT,HTML,DOC,LOG) и мультимедиа (WAV) данных архиватор 7-zip (LZMA) покажет худшие результаты, чем RAR, который имеет специальные методы для таких типов данных. Использование несжимаемых данных (JPG, PDF) покажет мизерную разницу между архиваторами с плохой и хорошей степенью сжатия. Кстати, многие файлы могут содержать как сжимаемую информацию, так и не- сжимаемую. В том числе файлы в формате DOC и PDF.

Сильное влияние оказывает и подбор оптимальных параметров сжатия. Например, по данным www.maximumcompression.com, используещего оптимальные параметры сжатия для каждого набора данных, разница между 7-zip и RAR около 3%, что значительно меньше разницы, полученной в данном тестировании.

Тестовая система

Тестирование производилось на системе: процессор - Athlon XP 2800+, оперативная память - 512 MB.

Набор данных

Данные

Размер

Сжатие ZIP

Содержание

bak

54.4 MB, 13 файлов

22.6%

Набор резервных копий. Резервные копии конфигураций (настроек) 1С:Предприятие. Размер файлов от 3 MB до 9 MB. Файлы имеют блочную структуру (compound) и содержат довольно много похожих и одинаковых блоков.
dat

41.5 MB, 4 файла

35.9%

Сложный набор разнообразных данных. Файлы, содержащие информацию об игровых уровнях (картах) в играх Half-Life 2 и UnrealTurnament 2003.
dbf

69.1 MB, 8 файлов

15.3%

Файлы баз данных. Файлы таблиц из юридической программы и базы данных 1С:Предприятие небольшого предприятия.
exe

25.3 MB, 3 файла

49.8%

Исполняемые файлы. Исполняемый файл из игры Half-Life 2, а так же динамическая библиотека и исполняемый файл из пакета MS Office XP.
med

25.5 MB, 27 файлов

63.4%

Мультимедиа файлы. Несколько файлов изображений в формате PSD, несколько текстур из игр Half-Life 2 и Unreal Tournament 2003 во внутреннем формате, несколько файлов несжатого звука WAV из игры Half-Life 2.
txt

41.4 MB, 472 файла

24.9%

Текстовые файлы. Текстовые файлы в формате HTML на русском языке (16.5 MB), исходные коды на языках программирования JAVA, Delphi, Python (24.8 MB). Размер файлов от 20 MB.

Архиваторы

Под архиватором понимается программа-архиватор, формат архива и метод сжатия в комплексе. Далее по тексту для выделения этой совокупности используется курсив.

Были выбраны наиболее интересные и яркие с моей точки зрения архиваторы. Для этого протестированы наиболее распространённые архиваторы и лучшие архиваторы по данным . Некоторые архиваторы были протестированы, но в итоговые результаты не попали. В том числе 7-zip (PPMd), Compressia, DGCA, DURILCA, EPM, PPMonstr, StuffIt, SBC, WinRK (PPMZ), WinRK (ROLZ). Некоторые архиваторы были отброшены после первых предварительных тестов. Это обусловлено более низкими результатами, без каких либо существенных преимуществ. Тем не менее, такие архиваторы, как Compressia, DURILCA, EPM, WinRK (PPMZ) являются одними из лучших по степени сжатия. Такой малоизвестный архиватор DGCA обладает почти идентичной степенью сжатия, скоростью и функциональностью с RAR, за исключением возможности изменять содержимое архива. При этом он является асимметричным, бесплатным и требует меньше оперативной памяти. Отмечу, что DGCA совершенно другой архиватор, который имеет свои недостатки.

Так как не все протестированные архиваторы поддерживают возможность сжатия папок, для них набор данных предварительно преобразовывался в архив ZIP с нулевой степенью сжатия.

Архиватору Slim немного подыграли. Дело в том, что этот неплохой архиватор может сжимать целые папки, но не использует непрерывный режим сжатия. В результате на тестовом наборе txt он показал сравнительно плохой результат. Если же использовать архив ZIP с нулевой степенью сжатия, тогда на тестовых наборах exe и med степень сжатия получалась значительно хуже. Это объясняется тем, что архиватор Slim использует специальные методы для некоторых форматов файлов. Архив ZIP хоть и содержит несжатые файлы, для Slim представляется только как архив ZIP. Таким образом, для архиватора Slim тестовый набор txt и bak предварительно преобразовывался в архив ZIP с нулевой степенью сжатия.

Архиватор

Версия

Параметры

[AD]

7-zip 4.16 beta

Format=7z, Compression level=Ultra, Compression method=LZMA, Dictionary size=32 MB, Word size=255
[AD]

WinACE 2.6b4

Compression=maximum, Solid=on, V2.0=on, Dictionary=4096 KB
[AD]

PAQAR 4.0

Compression option=6
[AD]

WinRAR 3.42

Compression method=best, Solid=on, Advanced compression parameters=(Все включено или авто), Text compression memory to use=128 MB, Dictionary=4096 KB
[AD]

Slim 0.23

Use of memory=400 MB
[AD]

Squeez 4.20

Format=SQX, Compression rate=maximum, Dictionary size=4096 KB, Multimedia compression=on, EXE compression=on
[AD]

UHARC 0.6a

Compression mode=PPM, Dictionary size=32768 KB
[AD]

WinRK 2.05

Compression method=PWCM, Model size=400 MB
[AD]

WinUDA 0.290

Mode-3
[AD]

7-zip 4.16 beta

Format=ZIP, Compression method=Deflate, Word size=255

Функциональность и характеристики архиваторов

Указаны характеристики и функциональность только для выбранных параметров. При использовании других параметров эти характеристики могут сильно измениться. Например, WinRK при использовании стандартного метода PPMZ позволяет создавать самораспаковывающиеся (SFX) архивы. Требования к оперативной памяти в основном определены выбранными параметрами и могут быть уменьшены.

  7zip ACE PAQAR RAR Slim Squeez UHARC WinRK WinUDA ZIP
Сжатие директорий

+

+

-

+

+(1)

+

+

+

+

+(1)

Создание самораспаковывающихся (SFX) архивов

+

+

-

+

-

+

+

-

+

-(2)

Изменение содержимого архива

+

+

-

+

+

+

-

+

-

+

Шифрование

+

+

-

+

-

+

+

+

-

+

Восстановление архива

-

+

-

+

-

+

-

-

-

-

Разбивка архива на части

+

+

-

+

-

+

-

+

-

+

Консольная версия

+

+

+

+

+

+

+

+(3)

-(4)

+

Графическая (GUI) версия

+

+

-

+

-

+

+(5)

+

+

+

Асимметричность

+

+

-

-(6)

-

+

-

-

-

+

Требования к оперативной памяти, MB

370

46

320

170(7)

430

55

54

430

200

36(8)

Бесплатность

+

-

+

-

+

-

+

-

+

+

  1. Не поддерживается непрерывный режим. Архиватор не эффективен при сжатии большого числа маленьких файлов.
  2. Архиватор 7-zip не поддерживает cоздание самораспаковывающихся (SFX) архивов ZIP , однако такая возможность имеется во многих других архиваторах, которые могут создавать архивы ZIP.
  3. Архиватор WinRK не имеет отдельной консольной версии, однако существует возможность работы с архиватором из командной строки.
  4. Архиватор WinUDA имеет консольную версию, но она использует более старый метод сжатия и создаёт несовместимые с графической (GUI) версией архивы.
  5. Архиватор UHARC не имеет отдельной версии с графической оболочкой. Однако существует полнофункциональная сторонняя оболочка WinUHA.
  6. Основной метод сжатия архиватора RAR - асимметричный словарный метод. Однако при максимальном сжатии может использоваться и используется симметричный метод для сжатия текста (PPM).
  7. Если установить автоматическое определение размера оперативной памяти для текстового сжатия, то на тестовых данных и тестовой системе для архиватора RAR требовалось всего 64 MB, а степень сжатия ухудшалась незначительно.
  8. В большинстве архиваторов для создания архивов ZIP требуется значительно меньше оперативной памяти.

Результаты

Современные архиваторы

Степень сжатия архиваторов по сравнению с лучшим результатом. Меньше - лучше

Современные архиваторы

Средняя степень сжатия архиваторов по сравнению с лучшим результатом. Меньше - лучше

Современные архиваторы

Средняя скорость сжатия архиваторов в KB/s. Больше - лучше

В зависимости от особенностей методов сжатия на разных наборах данных получены немного разные результаты. Например, на данных bak архиватор 7zip показал лучший результат за счет очень большого размера словаря (32 MB). Архиватор PAQAR не имеет метода сегментирования и нерационально использует оперативную память, поэтому здесь он показал не высокий результат. С другой стороны, некоторые результаты совсем не очевидны. Например, архиваторы PAQAR и WinUDA являются модификациями одного и того же архиватора PAQ6, причём PAQAR более прогрессивен и использует больше оперативной памяти. Однако на данных bak архиватор WinUDA оказался лучше.

Можно отметить следующие важные особенности. Архивы ZIP получились в среднем в 2 (!) раза больше, чем у лучших архиваторов. И это в то время как ZIP далеко не является последним по степени сжатия. Использовать его для создания архивов с высокой степенью сжатия нельзя. Низкая скорость обусловлена использованием программы-архиватора 7-zip с максимальными настройками. Он создаёт архивы ZIP с приблизительно на 5% лучшей степенью сжатия, чем оригинальный WinZIP, но делает это значительно медленнее.

Архиваторы ACE, Squeez и RAR показали приблизительно одинаковые результаты с небольшим преимуществом у последнего. Только на данных txt за счет специального метода превосходство архиватора RAR существенно. С другой стороны этот метод является симметричным. Поэтому получить содержимое архива RAR может оказаться невозможным на компьютерах с малым объёмом оперативной памяти. В среднем размер архивов получился на 55% больше размера архивов, созданных лучшими архиваторами. Таким образом, называть ACE, Squeez и RAR архиваторами с высокой степенью сжатия нельзя. Они находятся ближе к ZIP, чем к лидерам.

7zip и UHARC уже можно назвать архиваторами с хорошей степенью сжатия. В среднем размер архивов получился на 30% больше размера архивов, созданных лучшими архиваторами. Однако 30% - это тоже большая разница.

Только оставшиеся архиваторы можно называть архиваторами с высокой степенью сжатия. Из них PAQAR и WinRK практически использовать почти невозможно. Это связано с чрезвычайно низкой скоростью сжатия - в районе 4-10 KB/s. И следует помнить, что эти архиваторы являются симметричными, поэтому скорость распаковки равна скорости упаковки.

Тестирование при высокой скорости сжатия

В данном тестировании определялся лучший по степени сжатия архиватор при высокой скорости сжатия. Такой режим важен для частого, оперативного архивирования.

В качестве высокой скорости сжатия была выбрана фиксированная скорость 5 MB/s на тестовой системе. Такая скорость выглядит близкой к оптимальной. При дальнейшем увеличении ограничивающим фактором может становиться подсистема хранения данных. В то же время данные размером 1 GB могут быть упакованы всего за 3-4 минуты. Дополнительно было установлено ограничение на использование оперативной памяти до 32 MB. Таким образом, такие архиваторы можно использовать на системах с ограниченными ресурсами.

Максимальная скорость сжатия у различных архиваторов различна. Поэтому параметры сжатия, влияющий на скорость, подбирались для достижения 5 MB/s. Справочно приведены результаты при максимальной скорости сжатия. Допустимые, но чрезмерно низкие значения параметров сжатия не использовались.

Так как при высокой скорости сжатия разница между разными архиваторами относительно небольшая, необходимость в тестировании на разных наборах данных отсутствует.

Тестовая система

Тестирование производилось на системе: процессор - AthlonXP 2800+, оперативная память - 512 MB. Для получения более точных результатов производительность системы была уменьшена в 2 раза путём изменения частоты системной шины.

Набор данных

Данные

Размер

Сжатие ZIP

Содержание

all

257 MB, 528 файлов

29.9 %

Включает все данные, использованные в предыдущем тестировании: bak, dat, dbf, exe, med, txt

Архиваторы

Под архиватором понимается программа-архиватор, формат архива и метод сжатия в комплексе. Далее по тексту для выделения этой совокупности используется курсив.

Состав архиваторов изменился. Архиваторы с высокой степенью сжатия не смогли и близко достичь требуемой скорости в 5 MB/s. В качестве эталона был выбран самый распространённый архиватор ZIP. Много архиваторов просто не выдержали конкуренции с ним и не попали в итоговые результаты. Использовались только архиваторы, обеспечивающие возможность сжимать целые директории, так как для оперативного архивирования такая функция является важной.

Архиватор

Версия

Параметры

[AD]

7-zip 4.16 beta

Format=7z, Compression level=Fast, Compression method=LZMA, Dictionary size=64 КБ (d=16), Word size=32
[AD]

WinACE 2.6b4

Compression=super fast, Solid=on, V2.0=on, Dictionary=32 КБ
[AD]

WinIMP 1.21

Compression=Algorithm 2, Block size=200 KB, Solid unit size=16 MB, Multimedia filter=on
[AD]

WinRAR 3.42

Compression method=fast, Solid=on, Dictionary=32 KB
[AD]

WinRAR 3.42

Compression method=fastest, Solid=on, Dictionary=2048 KB
[AD]

Squeez 4.20

Format=SQX, Compression rate=normal, Dictionary size=256 KB, Multimedia compression=on, EXE compression=on
[AD]

Squeez 4.20

Format=SQX, Compression rate=normal, Dictionary size=32 КБ, Multimedia compression=on, EXE compression=on
[AD]

UHARC 0.6a

Compression mode=LZP, Dictionary size=16384 КБ
[AD]

Встроенный в Total Commander 6.50 упаковщик ZIP на основе Zlib by Jean-loup Gailly

Compression (8)
[AD]

Встроенный в Total Commander 6.50 упаковщик ZIP на основе Zlib by Jean-loup Gailly

Compression (5)

Функциональность и характеристики архиваторов

Указаны характеристики и функциональность только для выбранных параметров. При использовании других параметров эти характеристики могут сильно измениться.

 

7zip

ACE

IMP

RAR

RAR fastest

Squeez

Squeez fastest

UHARC

ZIP

ZIP fastest

Сжатие директорий

+

+

+

+

+

+

+

+

+(1)

+(1)

Создание самораспаковывающихся (SFX) архивов

+

+

+

+

+

+

+

-

+

+

Изменение содержимого архива

+

+

+

+

+

+

+

+

+

+

Шифрование

+

+

-

+

+

+

+

+

-(2)

-(2)

Восстановление архива

-

+

+

+

+

+

+

-

-

-

Разбивка архива на части

+

+

+

+

+

+

+

-

+(3)

+(3)

Консольная версия

+

+

+

+

+

+

+

+

-(4)

-(4)

Графическая (GUI) версия

+

+

+

+

+

+

+

+(5)

+

+

Асимметричность

+

+

+

+

+

+

+

-

-

+

Требования к оперативной памяти, MB

5

14

8

8

21

8

8

21

5

5

Бесплатность

+

-

+

-

-

-

-

+

-(6)

-(6)

  1. Не поддерживается непрерывный режим. Архиватор не эффективен при сжатии большого числа маленьких файлов.
  2. Total Commander 6.50 не поддерживает шифрование архивов ZIP, однако такая возможность имеется во многих других архиваторах, которые могут создавать архивы ZIP.
  3. Total Commander 6.50 поддерживает разбивку на части только при упаковке на сменный диск.
  4. Total Commander 6.50 не имеет консольной версии для работы с архивами ZIP, однако такая возможность имеется во многих других архиваторах, которые могут создавать архивы ZIP.
  5. Архиватор UHARC не имеет отдельной версии с графической оболочкой. Однако существует полнофункциональная сторонняя оболочка WinUHA.
  6. Total Commander 6.50 платный, однако, формат ZIP бесплатен. Имеются полностью бесплатные архиваторы.

Результаты

Современные архиваторы

Степень сжатия архиваторов по сравнению с лучшим результатом. Меньше - лучше

Современные архиваторы

Скорость сжатия архиваторов в KB/s. Больше - лучше

По степени сжатия архиваторы показали сравнительно близкие результаты. Это объясняется тем, что архиваторы, показавшие степень сжатия хуже ZIP не включались. С другой стороны, ни один архиватор не показал существенно лучшей степени сжатия при высокой скорости. Стоит отметить, что архиваторы RAR fastest и 7zip получили заметное увеличение скорости в последних версиях WinRAR 3.40 и 7-zip 4.16 beta, соответсвенно.

Для большинства архиваторов, включая 7zip, скорость сжатия в 5 MB/s на тестовой системе оказалась почти предельной. Если использовать их на компьютерах с ограниченными ресурсами, скорость оперативного архивирования может быть неприемлемой.

Лучшим выбором в данной категории является UHARC. С одной стороны, разницу в 5% по степени сжатия нельзя назвать такой уж существенной. С другой стороны, остальные архиваторы идут довольно плотной группой и даже такая небольшая разница является достижением.

Итоги

Несмотря на низкую степень сжатия ZIP является самым распространённым архиватором и форматом архивов. Он обладает очень высокой скоростью упаковки и распаковки. Неплохо подходит для оперативного архивирования, но только в режиме ZIP fast.

Архиваторы ACE, RAR и Squeez показали близкие результаты с небольшим преимуществом по степени сжатия у RAR, и при высокой скорости сжатия у Squeez. Они не являются лидерами, а по максимальной степени сжатия существенно отстают от передовых архиваторов. Разница находится в пределах от 25% до 105% (!), в среднем 55%. С другой стороны, они обладают богатой функциональностью. В режиме максимального сжатия обладают сравнительно высокой скоростью. В некоторых случаях эти архиваторы являются неплохим выбором.

Как универсальные архиваторы с хорошей степенью сжатия (на 30% хуже лучших архиваторов) можно рекомендовать 7zip и UHARC. Важным преимуществом этих архиваторов является бесплатность. UHARC почти всегда создаёт архивы с лучшей степенью сжатия, но он немного менее функционален, имеет статус бета версии, и, в отличие от 7zip, является симметричным. В максимальном режиме для UHARC требуется всего 54 MB оперативной памяти, что позволяет использовать этот архиватор на компьютерах с ограниченным объёмом оперативной памяти. При высокой скорости сжатия UHARC просто лидер.

7zip является самым лучшим по степени сжатия асимметричным архиватором. Созданные при его помощи архивы можно использовать почти на любых компьютерах. Конечно в пределах разумного, так как размер словаря можно установить и в 256 MB. Скорость сжатия в максимальном режиме можно легко увеличить в 2-3 раза путём уменьшения значения параметра Word size. Степень сжатия ухудшиться менее чем на пару процентов. Для сжатия текста в программе-архиваторе 7-zip имеется отдельный специальный метод PPMd. Кстати, этот метод идентичен текстовому методу сжатия RAR. В ближайшее время ожидается добавление специального метода для сжатия мультимедиа данных, на которых 7zip показал плохие результаты.

Среди архиваторов с высокой степенью сжатия можно отметить WinUDA и Slim. Архиватор WinUDA несмотря на низкую скорость и сравнительно низкую функциональность произвёл приятное впечатление. Все самые необходимые функции имеются, в том числе возможно создание самораспаковывающихся (SFX) архивов. Причём сам модуль распаковщика занимает всего 18 KB. Имеется метод сжатия Mode-0, для которого требуется всего 24 MB оперативной памяти. Скорость при этом возрастает до 127 KB/s, а степень сжатия ухудшается незначительно.

Slim обладает немного более высокой степень сжатия (с учётом особенностей тестирования) и скоростью, но не имеет таких важных функций, как создание самораспаковывающихся (SFX) архивов, графической (GUI) версии и непрерывного режима сжатия. Кроме того, он менее стабилен.

Что же касается перспектив развития архиваторов, то уже давно повышение степени сжатия в основном достигается за счет более ресурсоёмких методов. Один из лучших архиваторов PAQAR в типичном режиме имеет скорость 5 КБ/с. Другим направлением является развитие специальных методов, предназначенных только для определённых форматов файлов. Именно в этом направлении можно ожидать некоторых существенных сдвигов.

Результаты проведенного тестирования отличаются от рейтинга и Squeeze Chart. Это лишний раз подчеркивает, что результаты сильно зависят от исходных данных и параметров сжатия.