Путеводитель по архиваторам(продолжение)
До сих пор нередко встречаются ситуации, когда более целесообразно применение архиваторов, работающих в консольном режиме. Вспомните времена, когда в бухгалтериях предприятий доминировали разработки на 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.
Не стоит забывать, что речь шла о системах, не подвергавшихся какой-либо дополнительной оптимизации. Разумеется, обе системы можно настроить на более высокое быстродействие, но это уже материал для другой статьи.
Источник
Архиваторы
Ark – программа для работы с архивами для среды KDE. Может работать как самостоятельная программа так и вызываться через контекстное меню KDE.
atool
Сценарий для управления файловыми архивами различных типов (tar, tar+gzip, zip и т.д.).
btar — это архиватор, совместимый с tar, который позволяет использовать сжатие, шифрование, дифференциальный бэкап и обладает устойчивостью к частичным повреждениям архива.
bzip2
Небольшая консольная утилита для эффективного сжатия данных.
comprez
Простая, безопасная и удобная оболочка к утилитам сжатия и распаковки файлов и каталогов.
cyphertite
Cyphertite — это безопасный архиватор для создания архивов на удаленных машинах, подобный tar.
Консольное приложение для создания резервных копий файлов и каталогов.
File Roller
Программа для работы с архивами для среды GNOME, по сути является удобным и простым в использовании графическим интерфейсом над многими консольными утилитами, вроде tar и zip.
FreeArc
FreeArc — это свободный (GNU GPL) файловый архиватор с открытым исходным кодом и высокой степенью сжатия данных, разработанный Булатом Зиганшиным для 32-битных операционных систем Microsoft Windows и Linux.
Файловый архиватор с высокой степенью сжатия.
Long Range ZIP (LRZIP)
LRZIP — это программа сжатия и библиотека, которые могут дать очень высокие коэффициэнты компрессии и скорости при сжатии больших файлов и наличии большого объема памяти.
Lunzip
Lunzip — это декомпрессор для lzip-файлов.
Сжатие данных по алгоритму LZMA (Lempel-Ziv-Markov chain-Algorithm), с строгой проверкой точности данных и интерфейсом, идентичным bzip2.
p7zip
p7zip — это архиватор файлов с высокой степенью сжатия, порт популярного Windows-архиватора 7-zip под Linux, позволяющий работать в интерфейсе командной строки.
patool
patool — это переносимый архиватор командной строки. Он позволяет создавать, распаковывать, тестировать и просматривать архивы различных форматов.
Pcompress
Pcompress — это утилита компресси/декомпресии и параллельно для удаления дубликатов. Она имеет модульную структуру и включает поддержку множества алгоритмов, таких как LZMA, Bzip2, PPMD, LZ4 и так далее, с подсчетом контрольных сумм по KECCAK/BLAKE2/SHA-256/512.
PeaZip
PeaZip это свободный (GNU LGPL) и бесплатный кроссплатформенный портативный архиватор и графическая оболочка для других архиваторов с многоязычным интерфейсом (русский поддерживается).
Источник