Путеводитель по архиваторам
(продолжение)

Тестирование консольных архиваторов в Windows и Linux


Содержание

До сих пор нередко встречаются ситуации, когда более целесообразно применение архиваторов, работающих в консольном режиме. Вспомните времена, когда в бухгалтериях предприятий доминировали разработки на FoxPro для DOS. В конце каждого рабочего дня системный администратор выполнял резервное копирование баз данных. И от того, как быстро оно пройдет, напрямую зависело время окончания рабочего дня специалиста. Основное применение консольных архиваторов - автоматизированное резервное копирование. В этом небольшом тестировании пойдет речь о скорости работы консольных архиваторов в операционных системах Windows и Linux, а также рассмотрим поподробнее степень сжатия данных, обеспечиваемую рассматриваемыми программами.

Система проведения тестирования

Конфигурация тестовой рабочей станции

Процессор - Athlon XP 2500+
Оперативная память - 1024МБайт (шина 333МГц)
Жесткие диски:
1. WD2000JB с предустановленной Windows ХР
2. ST3160023A с Linux.
Оба жестких диска имеют 8МБ внутренний кэш. Скорость вращения шпинделя у обоих дисков - 7200 об/мин.

Операционные системы

ОСУсловия тестирования
Windows XP SP2Инсталляция производилась из образа диска с заранее установленными драйверами для материнской платы и видеокарты. Файловая система NTFS, все остальные настройки оставлены по умолчанию.
SuSE Linux 10.0Инсталляция производилась с 5CD дистрибутива. По умолчанию выбрана рабочая среда KDE. Файловая система ReiserFS.

Участники тестирования

Название программыЦена, $ЛицензияОС
7zip 4.320GPLWindows
Arj32 3.1140-100ARJ32 LICENSEWindows
Bzip2 1.0.30GPLLinux
Gzip 1.3.50GPLLinux
P7zip 4.300GPLLinux
Rar 3.515-29Лицензия Александра РошалаWindows
Rar 3.51 for Linux5-29Лицензия Александра РошалаLinux

7zip 4.32. Консольная утилита данного архиватора входит в состав программы с графической оболочкой.

Условия тестированияКоманда для выполнения
ZIP, по умолчанию7z.exe a -tzip -r <имя_архива> <путь\*.*>
ZIP, максимальное сжатие7z.exe a -tzip -r <имя_архива> <путь\*.*> -mx9
Архивирование текста в оптимальном формате с максимальной степенью сжатия7z.exe a -t7z -r <имя_архива> <путь\*.*> -m9=PPMd
Архивирование графики и смешанных данных в оптимальном формате с максимальной степенью сжатия7z.exe a -t7z -r <имя_архива> <путь\*.*> -m9=LZMA
Архивирование с применением алгоритма Bzip2 с максимальной степенью сжатия7z.exe a -t7z -r <имя_архива> <путь\*.*> -m9=BZip2

Arj32 3.11. Легендарный консольный архиватор под Windows.

Условия тестированияКоманда для выполнения
ARJ, по умолчаниюARJ32.EXE a <имя_архива> <путь\*.*> -r
ARJ, максимальное сжатиеARJ32.EXE a <имя_архива> <путь\*.*> -r -jm

Примечание: Архиватор платный. Незарегистрированная версия перед каждой операцией делает паузу 10 секунд. Все результаты тестов архиватора приводятся без учета данной задержки.

Сочетание Bzip2 1.0.3 и Tar 1.15.1. Архиватор Bzip2 не может архивировать несколько файлов, создавая один архив. Для того, чтобы "собрать" данные в одном файле, чаще всего используется архиватор Tar, известный еще со времен, когда в ходу были ленточные накопители. Tar не сжимает данные, а лишь собирает множество файлов и каталогов в один общий файл, что удобно при записи на накопители с последовательным доступом. Для удобства подсчета результатов, тестирование производилось через пользовательское меню Midnight Commander, где была прописана последовательность требуемых команд.

Условия тестированияКоманда для выполнения
Bzip2, по умолчаниюtar cf <имя_файла> <путь\*> bzip2 -f <имя_архива> <имя_файла>

Сочетание Gzip 1.3.5 и Tar 1.15.1. Gzip также не может архивировать группу файлов. В качестве "компоновщика" множества файлов использовался архиватор Tar.

Условия тестированияКоманда для выполнения
Gzip, по умолчаниюtar cf <имя_файла> <путь\*> gzip -f9 <имя_архива> <имя_файла>

p7zip 4.30. Архиватор в Linux, использующий аналогичные с 7zip алгоритмы.

Условия тестированияКоманда для выполнения
ZIP, по умолчанию7z a -tzip -r <имя_архива> <путь/*>
ZIP, максимальное сжатие7z a -tzip -r <имя_архива> <путь/*> -mx9
Архивирование текста в оптимальном формате с максимальной степенью сжатия7z a -t7z -r <имя_архива> <путь/*> -m9=PPMd
Архивирование графики и смешанных данных в оптимальном формате с максимальной степенью сжатия7z a -t7z -r <имя_архива> <путь/*> -m9=LZMA
Сжатие при помощи алгоритма Bzip2 с максимальной степенью сжатия7z a -t7z -r <имя_архива> <путь/*> -m9=BZip2

Rar 3.51. Консольная утилита для Windows, входящая в состав пакета WinRar.

Условия тестированияКоманда для выполнения
RAR, по умолчаниюRar.exe a -r <имя_архива> <путь\*.*>
RAR, максимальное сжатиеRar.exe a -r -m5 <имя_архива> <путь\*.*>

Rar 3.51 for Linux. Версия консольного архиватора Rar для ОС Linux.

Условия тестированияКоманда для выполнения
RAR, по умолчаниюrar a -r0 <имя_архива> <путь/*>
RAR, максимальное сжатиеrar a -r0 -m5 <имя_архива> <путь/*>

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

  1. Текстовые файлы объемом 63026КБ. 1566 файлов, среди которых TXT, HTML, RTF, DOC и XLS.
  2. Графические файлы объемом 135942КБ. 116 файлов BMP и TIFF (16 бит на канал).
  3. Смешанное содержимое объемом 169758КБ. В качестве данных использовались установленные в системе Sun Java 1.5.0, Mozilla Firefox 1.5, Opera 8.50 с пользовательскими данными и Picasa 2. В каталоге оказалось 2077 файлов разнообразных типов.

При тестировании в Windows данные располагались на системном логическом диске, в Linux - все исходные данные были помещены в домашний каталог ~/, который являлся частью корневой файловой системы.

Целью данного тестирования являлось сравнение скорости и эффективности работы одинаковых алгоритмов в разных операционных системах. Кроме того, к "парным" участникам (7zip - p7zip, Rar - Rarlinux) были добавлены наиболее известные, проверенные временем архиваторы Arj, Bzip2 и Gzip. Интересно, как поведут себя они рядом с молодыми продуктами?

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

К содержанию

Скорость архивирования

Скорость сжатия текста. Данное тестирование показывает скорость обработки множества файлов, приблизительно одинакового типа и объема. Здесь и далее на всех диаграммах синим цветом показаны архиваторы для Windows, а красным - для Linux.

Скорость сжатия текста

Архиваторы, имеющие аналоги в другой операционной системе, расположены по соседству со своими "родственниками". Почти во всех тестах немного опережают архиваторы для Windows. "Старая гвардия" по прежнему на высоте - Arj (настройки по умолчанию) и Gzip занимают первые два места.

Скорость сжатия графики.

Скорость сжатия графики

Ситуация не меняется. Родственники из Windows немного впереди, общие лидеры не меняются - Arj и Gzip.

Скорость сжатия смешанных данных.

Скорость сжатия смешанных данных

Все по-старому. Windows чуть быстрей, Arj и Gzip - лидеры. После трех тестов можно уверенно утверждать, что быстрее всех архивируют программы "старой школы" - Arj и Gzip.

К содержанию

Скорость разархивирования

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

Скорость разархивирования

Linux одерживает безоговорочную победу, оставляя Windows далеко позади. Только распаковка архивов, созданных с использованием алгоритма bz2, заставила задуматься Open-Source операционную систему, все остальные архиваторы были фантастически быстры.

Скорее всего, подобное преимущество обусловлено более качественной работой файловой системы ReiserFS, чем NTFS с многочисленными файлами небольшого размера. Скорость разархивирования практически не зависела от повторений теста, то есть кэширование выполнялось уже при первом запуске. Стоит заметить, что для проверки точности результатов Gzip система была принудительно перезагружена, но тест показал все те же 6 секунд. Во время разархивирования в Linux практически не было слышно звука позиционирования головок жесткого диска, в то время как даже неоднократные повторения теста в Windows заставляли винчестер непрерывно "напоминать о себе".

Разархивирование в Linux происходит быстрее, чем в Windows.

К содержанию

Объемы архивов

Текстовые данные.

Текстовые данные

7zip и p7zip при использовании алгоритмов PPMd и bz2 по умолчанию создают Solid-архивы (при распаковке одного файла из архива требуется обработка всего содержимого), вырвавшись вперед в не совсем честной, борьбе. Однако параметры тестирования не устанавливали жестких рамок указания типа архива (Solid или нет), поэтому результаты пришлось принять как полностью соответствующие условиям тестов.

Графические данные.

Графические данные

Лидерами в данной категории оказались алгоритмы bz2 и RAR.

Смешанные данные.

Смешанные данные

Безоговорочная победа алгоритма LZMA, реализованная в архиваторах 7zip и p7zip. RAR уверенно занимает второе место.

К содержанию

Рейтинги

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

Формула подсчета рейтинга: R = (Сумма всего времени архивирования + время разархивирования данных смешанного типа * 3) * Сумма объемов всех архивов / 10000.

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

Второе - это убедительная победа Gzip и Arj, проверенных временем архиваторов. Gzip - заслужил звание оптимального консольного архиватора. У 7zip и p7zip катастрофически не хватает скорости для полноценной конкуренции, поэтому они стали аутсайдерами данного тестирования.

Но не будем спешить с окончательными итогами и посмотрим на рейтинг операционных систем.

Формула подсчета рейтинга: R = (Суммарное время, потраченное на архивирование, + Суммарное время, потраченное на разархивирование) * Суммарный объем архивов.

Благодаря огромному преимуществу в скорости разархивирования, Linux является более предпочтительной операционной системой для применения консольных архиваторов, чем Windows.

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

К содержанию



Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.