Архивы: по дате | по разделам | по авторам

А вы еще не стерли свой arj?

Архив
автор : ЕВГЕНИЙ БОНДАРЬ    10.08.1999

Что для одних - нелепость, для других - доказательство.
Антони Шефтсбери


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

- большинство уверено, что существует два "нормальных" архиватора (сразу оговорюсь, правильнее, конечно, "компрессор", но я буду использовать устоявшееся слово): ARJ и ZIP, а также какой-то "левый" русский RAR;

- некоторые непредубежденные используют RAR и вовсе не против HA, который "лучше всех на текстах" (в этом, например, убеждены создатели электронных библиотек);

- самые опытные припоминают PKARC, PAK, ZOO, LHA, LIMIT и AIN;

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

А знаете ли вы, что:

- в последнем ежемесячном тесте архиваторов, публикуемом Джеффом Гилхристом (Jeff Gilchrist, jeffg@cips.ca) из канадского университета New Brunswick "участвует" более 140 программ, причем число их непрерывно растет;

- чуть ли не половина всех архиваторов создана в бывшем СССР, а вообще-то география архиваторописателей - от Австралии до Нигерии;

- по степени сжатия на всех типах файлов PKZIP стабильно находится в седьмом-восьмом десятке, а ARJ, в большинстве случаев, еще дальше;

- по скорости сжатия PKZIP тоже не чемпион, а ARJ обычно - в третьем-четвертом десятке;

- по степени сжатия на крупном текстовом файле ("Три мушкетера") HA занял 35-е место, проиграв лидеру 24K;

- существуют программы, поддерживающие распространенные форматы, но делающие это лучше оригиналов;

- сам Роберт Янг (Robert Jung), автор ARJ, уже давно выпускает куда более совершенный архиватор?

Что ж, если я кого-то заинтриговал, читайте дальше.

Почему?

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

Во-первых, винчестеры были очень малы, а сменные носители дороги. Сейчас - огромные винчестеры, компакты, оптика, сменные диски.

Цена мегабайта уже просто смешная и стремительно падает. Один корреспондент написал мне: "Да я на хвостах файлов больше теряю".

Во-вторых, раньше был пустой рынок. Не знаю точно, сколько получила PKWARE за свои shareware-продукты, но уверен, что речь идет о многих миллионах. Теперь рынок захвачен, совместимость - превыше всего, надежность работы всем известных архиваторов сомнений ни у кого не вызывает, вспомогательного софта написано море. И заставить кого-то платить за что-то новое весьма проблематично.

И, тем не менее, на архиваторных сайтах (см. ниже) чуть ли не каждую неделю появляется что-то новое. Чаще, конечно, апгрейды, но иногда и принципиально новые программы. Чего же ради люди тратят свое время на, казалось бы, безнадежное дело? Можно, естественно, привести "рациональные" причины: желание все-таки "отгрызть" кусочек рынка (удалось же это Рошалу!), желание не платить авторам коммерческих и shareware-программ, желание несколько повысить секретность пересылки и хранения данных за счет использования малоизвестного формата. Но я уверен, что главная причина - в здоровом человеческом честолюбии. Ведь это же чистой воды соревнование! Как, пожалуй, ни в какой другой области программирования. Есть четкие критерии, есть хорошо ограниченная задача, есть где применить свои способности и талантливого алгоритмиста (а придумайте-ка свой уникальный алгоритм!), и виртуозного программиста. Вот уж где простор для любителей сэкономить команду-другую. Это вам не вирусы писать! И потому все новые и новые программисты "выходят на дорожку", мечтая заявить о себе всему компьютерному миру (или узкому кругу настоящих ценителей). По-моему, это прекрасно.

Итак, на старт!

Ну, раз уж у нас соревнование, то надо договориться о правилах, участниках и судьях.

Начнем с судей. Здесь будут приведены некоторые результаты тестов вышеупомянутого Джеффа Гилхриста (оригинальную версию можно взять на http://act.by.net, а русскоязычную - на www.chat.ru/~arctest) и моих собственных. У нас есть различие в методиках. Джефф проверяет все в специально сконфигурированной системе с большим виртуальным диском (на который все и пакуется) и без дисковых кэшей. Для DOS-программ используется DOS 6.22, Windows (как правило) - только для "родных" приложений. Такая методика, наверное, правильна теоретически (влияние системы сведено к минимуму). Но мне она кажется немного искусственной. Поэтому я гонял свои тесты на рабочем P 200 от DEC с 32 Мбайт памяти в свободное время, просто выключив все активные задачи. Диск у меня разделен на FAT с Windows 95 и HPFS с OS/2 Merlin. Тесты все шли, естественно, на FAT. Зато появилась возможность построить общую таблицу для DOS/Win и OS/2 в "естественных" условиях. О других различиях - ниже.

Теперь о правилах. Во-первых, надо договориться, кого считать лучшим. Понятно, отдельные "номинации" очевидны. Легко определить "лучшего по сжатию". Чуть труднее - по скорости сжатия и разжатия. Трудность тут заключается в отсутствии у некоторых архиваторов командной строки или же наличии у некоторых из них дополнительных запросов перед выполнением.

Джефф, как менее ленивый (или более целеустремленный), такие программы замеряет с секундомером в руках, я же их вообще исключал из "гонок". А вот как определить абсолютно лучшего? Гилхрист пошел по пути вычисления общего времени, которое необходимо для того, чтобы сжать файлы, передать их по модему на 28800 (идеальная линия) и разжать их.

Этот подход имеет то преимущество, что исключает всякую субъективность. Да вот беда, я-то передаю файлы отнюдь не каждый день (а в Интернете все равно все в ZIP'e или ARJ'е). Поэтому лично для меня важнее, чтобы я мог как можно лучше сжать файл (и сэкономить место на своих дисках) за приемлемое время (разжатие - операция быстрая всегда). Что такое приемлемое время? Чисто субъективное понятие. Поэтому мои оценки будут страдать субъективностью. Буду рад узнать о других методиках интегральной оценки.

Кто же становился участником соревнований? Тестировались практически все программы, которые удавалось достать. При этом почти у всех проверялись все режимы. Дело в том, что большинство архиваторов имеет градации архивации по степени сжатия/скорости (как минимум Fast, Normal, Best). Многие современные программы теперь предоставляют возможности выбрать модель памяти и размер словаря. Результаты могут очень отличаться при выборе тех или иных опций. Не берусь утверждать, что во всех случаях подобрана оптимальная комбинация параметров, но представление вы, безусловно, получите. Еще одно замечание. Многие архиваторы умеют сжимать только один файл (или каталог). В этом случае для возможности их сравнения на группе файлов использовалось объединение при помощи программы TAR. Не участвовали системы сжатия на лету типа Stacker и DoubleSpace.

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

Итак, некоторые результаты. Я не буду мучить читателей длинными таблицами, приведу только чемпионов по категориям, а также места, занятые PKZIP и ARJ. Почувствуйте разницу! Причем учтите, что, поскольку существуют различные версии программ, брались результаты, показанные лучшей из них.

Сначала тесты Гилхриста. Проводятся они в следующих категориях.

1. Text test. 226 "заездов", то есть проб с разными параметрами.

Победители.

Лучшее сжатие: RKUC 1.03.
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: LZOP 0.94 f/Windows.
Общий итог: IMP 1.01.
PKZIP: сжатие - 117-е место, скорость - 2-е.
ARJ: сжатие - 148-е место, скорость - 50-е.

2. Executable test. 161 "заезд".
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: LZOP 0.94 f/Windows.
Общий итог: COOLZIP 1.01.
PKZIP: сжатие - 94-е место, скорость - 2-е.
ARJ: сжатие - 122-е место, скорость - 33-е.

3. Sound (WAV) test. 169 "заездов".
Лучшее сжатие: SONARC 2.1i
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: LZOP 0.94 f/Windows.
Общий итог: RAR 2.06 f/Windows.
PKZIP: сжатие - 83-е место, скорость - 8-е.
ARJ: сжатие - 101-е место, скорость - 21-е.

4. Graphic (TIF) test. 163 "заезда".
Лучшее сжатие: Arhangel 1.38.
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: LZOP 0.94 f/Windows.
Общий итог: Arhangel 1.38.
PKZIP: сжатие - 81-е место, скорость - 2-е.
ARJ: сжатие - 103-е место, скорость - 20-е.

5. Calgary Corpus test (специально подобранная смесь разнородных файлов). 164 "заезда".
Лучшее сжатие: BOA 0.58b.
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: LZOP 0.94 f/Windows.
Общий итог: IMP 1.01.
PKZIP: сжатие - 100-е место, скорость - 2-е.
ARJ: сжатие - 126-е место, скорость - 38-е.

6. Canterbury Corpus test (еще одна коллекция). 164 "заезда".
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: LZOP 0.94 f/Windows.
Общий итог: SZIP 1.11beta.
PKZIP: сжатие - 101-е место, скорость - 2-е.
ARJ: сжатие - 121-е место, скорость - 43-е.

7. Game test (используется известная игра "Worms2"). 159 "заездов".
Лучшее сжатие: UHARC 0.2.
Быстрейшее сжатие: LZOP 0.94 f/Windows.
Быстрейшее разжатие: IMP 1.01.
Общий итог: RAR 2.50 f/Windows.
PKZIP: сжатие - 92-е место, скорость - 2-е.
ARJ: сжатие - 109-е место, скорость - 18-е.

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

Теперь мои собственные тесты.

1. Набор фонтов Windows (35 файлов). 455 "заездов".
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZOP 1.00 for OS/
Общий итог (напоминаю, моя субъективная оценка): IMP 1.1 for DOS.
PKZIP: сжатие - 239-е место, скорость - 11-е.
ARJ: сжатие - 287-е место, скорость - 43-е.

2. Документация к программам на английском языке (3 файла). 455 "заездов".
Лучшее сжатие: BOA 0.58b.
Быстрейшее сжатие: LZOP 1.00 for DOS.
Общий итог: EXP 1.0.
PKZIP: сжатие - 242-е место, скорость - 6-е.
ARJ: сжатие - 282-е место, скорость - 41-е.

3. DLL Windows и OS/2 (15 файлов). 452 "заезда".
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZS 3.1.
Общий итог: ACE 1.2 for DOS.
PKZIP: сжатие - 248-е место, скорость - 11-е.
ARJ: сжатие - 266-е место, скорость - 54-е.

4. Программы Clipper & Fox (50 файлов). 459 "заездов".
Лучшее сжатие: ACB 2.0.
Быстрейшее сжатие: LHARK 0.4d.
Общий итог: RKIVE 1.92.
PKZIP: сжатие - 293-е место, скорость - 5-е.
ARJ: сжатие - 288-е место, скорость - 56-е.

5. Программы Pascal (50 файлов). 457 "заездов".
Лучшее сжатие: X1 0.95 for DOS.
Быстрейшее сжатие: LHARK 0.4d.
Общий итог: RKIVE 1.92.
PKZIP: сжатие - 313-е место, скорость - 12-е.
ARJ: сжатие - 292-е место, скорость - 69-е.

6. Таблицы Excel (3 файла). 456 "заездов".
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZOP 1.0 for OS/2.
Общий итог: BIX 1.00b3.
PKZIP: сжатие - 191-е место, скорость - 4-е.
ARJ: сжатие - 248-е место, скорость - 45-е.

7. WAV-файлы Win95 (25 файлов). 451 "заезд".
Лучшее сжатие: WAVARC 1.0, RAR 2.04 for OS/2 для универсальных.
Быстрейшее сжатие: LZOP 1.0 for DOS.
Общий итог: WAVARC 1.0, RAR 2.04 for Windows для универсальных.
PKZIP: сжатие - 234-е место, скорость - 13-е.
ARJ: сжатие - 224-е место, скорость - 33-е.

8. ICO OS/2 и Windows (по 100 штук). 444 "заезда".
Лучшее сжатие: UHARC 0.2b.
Быстрейшее сжатие: JRCHIVE 1.10.
Общий итог: AIN 2.32.
PKZIP: сжатие - 368-е место, скорость - 23-е.
ARJ: сжатие - 301-е место, скорость - 127-е.

9. BMP Windows (маленьких, до 30 Кбайт, применение, я думаю, понятно). 50 файлов. 452 "заезда".
Лучшее сжатие: UHARC 0.2b.
Быстрейшее сжатие: LZOP 1.0 for DOS.
Общий итог: UHARC 0.2b.
PKZIP: сжатие - 278-е место, скорость - 12-е.
ARJ: сжатие - 238-е место, скорость - 49-е.

10. HLP Windows 95 (15 файлов).
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZOP 1.0 for OS/2.
Общий итог: BIX 1.00b3.
PKZIP: сжатие - 200-е место, скорость - 11-е.
ARJ: сжатие - 361-е место, скорость - 43-е.

11. VXD-драйверы Windows (30 файлов). 437 "заездов".
Лучшее сжатие: 777 0.04b1.
Быстрейшее сжатие: LZOP 1.0 for OS/2.
Общий итог: IMP 1.1 for DOS.
PKZIP: сжатие - 259-е место, скорость - 13-е.
ARJ: сжатие - 256-е место, скорость - 49-е.

12. Фильмы FLI (3 файла). 432 "заезда".
Лучшее сжатие: ACB 2.0.
Быстрейшее сжатие: LZS 3.1.
Общий итог: IMP 1.1 for DOS.
PKZIP: сжатие - 259-е место, скорость - 13-е.
ARJ: сжатие - 256-е место, скорость - 49-е.

Не правда ли, обращает на себя внимание значительная разница в скоростных результатах, показанная PKZIP? Вот что такое различные методики! Могу уверить, что есть и более значительные расхождения по другим архиваторам.

Немного о чемпионах и прочих достойных

Ну, как, многих чемпионов вы знаете? Попробую кое-что рассказать о них и о некоторых других весьма достойных "претендентах".

Начнем с линейки архиваторов от Игоря Павлова (compress.da.ru, igorp@geocities.com). Я не знаю точно, как формулировал свою задачу Павлов, но у меня сложилось впечатление о четко выстроенном ряде.

777 и UFA. Архиваторы, направленные на достижение максимального сжатия. Недаром 777 занял первое место по сжатию в семи тестах (просто магическая семерка какая-то). По некоторым тестам им просто нет равных. Например, на HLP-файлах 777 и UFA заняли шесть из десяти первых мест. Естественно, это достигается за счет приличных затрат времени. Особенно это касается 777. В общем, пользоваться этими архиваторами рекомендуется в фоновом режиме на быстрой машине, когда место значительно важнее времени.

7Zip. Архиватор, совместимый по формату с PKZIP, но умудряющийся при этом жать несколько лучше. Например, на Calgary Corpus Test программа 7Zip выиграла у ближайшего из Zip'ов от PkWare 40K.

BIX. Архиватор, претендующий на оптимальность по соотношению сжатие/скорость. Например, на наборе фонтов BIX (при максимальном сжатии) занял 7-е место, проиграв победителю (777) 60K, но затратив 27 секунд против 263-х.

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

А вообще, на сайте автора сообщается, что 777 и BIX рассматриваются как экспериментальные перед будущим релизом UFA. Будем с нетерпением ждать.

Архиватор LZOP

Автор Markus F. X. J. Oberhumer из Австрии (wildsau.idv.uni-linz.ac.at/mfx).

Безусловный лидер по скорости упаковки. Использует оригинальный алгоритм упаковки LZO (Lempel-Ziv Oberhumer), на сайте можно взять исходники библиотек. Скорость упаковки действительно потрясает: обычный выигрыш у PKZIP в режиме "Super Fast" - 30-50 процентов. Сжатие, конечно, неважное. Есть версии для Windows, DOS и OS/2. Причем последняя - самая быстрая: четыре первых места, притом что у меня на компьютере OS/2 несколько больше нагружена (две файловые системы против одной).

Архиватор с устрашающим названием BOA (constrictor)

Автор Ian Sutton (isutton@idirect.com).

Архиватор занял два первых места по сжатию, а в остальных тестах - постоянно в числе лидеров. Особенно хорош там, где надо сжимать крупные файлы. Для реальной работы нужно не менее 16 Мбайт памяти.

Архиватор ACB

Associative Coder of Buyanovsky (acb@online.ru).

Автор живет в Алма-Ате. В момент выхода (в 1997 году) программа была безусловным лидером по степени сжатия, да и сейчас удерживает два первых и несколько призовых мест. В документации написано, что рекомендованные требования - P 133 и 16 Мбайт. Реально начинает работать на удвоенной конфигурации. Иначе на крупных коллекциях возможен, по выражению автора, "dramatic slower packing/unpacking". Например, на P 75 с 16 Мбайт тест фонтов у меня шел более часа, а на P 200 с 32 Мбайт - менее трех минут. Так что сейчас, я думаю, большинство пользователей уже может интересоваться ACB без ущерба для собственных нервов. Тем более что у него есть совершенно уникальный для архиваторов "Trainable Channel Mode". Это своего рода система патчей, ориентированная на передачу по каналам связи. Можно создать некий базовый архив, передать его клиенту, а дальше (по мере изменения файлов) изготавливать только инкрементальные архивы. Размер их при этом очень мал. Выигрыш по скорости передачи (да и по конфиденциальности) очевиден.

Архиватор IMP

Производитель Technelysium Pty Ltd из Австралии (www.technelysium.com.au, imp@technelysium.com.au).

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

Реальный конкурент для BIX. Например, на упомянутом тесте фонтов занял 17-е место по сжатию, проиграв BIX 25K (и 85K победителю), но затратив 5,3 секунды против соответственно 27 и 263. Помимо своего формата, понимает ZIP. Есть версии для Win32 и DOS, специальный мультимедиа-фильтр.

Продолжение следует



© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.