Содержание
- Система проведения тестирования
- Скорость архивирования
- Скорость разархивирования
- Объемы архивов
- Рейтинги
До сих пор нередко встречаются ситуации, когда более целесообразно применение архиваторов, работающих в консольном режиме. Вспомните времена, когда в бухгалтериях предприятий доминировали разработки на 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.32 | 0 | GPL | Windows |
Arj32 3.11 | 40-100 | ARJ32 LICENSE | Windows |
Bzip2 1.0.3 | 0 | GPL | Linux |
Gzip 1.3.5 | 0 | GPL | Linux |
P7zip 4.30 | 0 | GPL | Linux |
Rar 3.51 | 5-29 | Лицензия Александра Рошала | Windows |
Rar 3.51 for Linux | 5-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 <имя_архива> <путь/*> |
Для тестирования использовались данные, примененные в тестировании архиваторов с графической оболочкой. Небольшая цитата из предыдущей статьи: Для тестирования были созданы три каталога.
- Текстовые файлы объемом 63026КБ. 1566 файлов, среди которых TXT, HTML, RTF, DOC и XLS.
- Графические файлы объемом 135942КБ. 116 файлов BMP и TIFF (16 бит на канал).
- Смешанное содержимое объемом 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.
Не стоит забывать, что речь шла о системах, не подвергавшихся какой-либо дополнительной оптимизации. Разумеется, обе системы можно настроить на более высокое быстродействие, но это уже материал для другой статьи.