Сжатие данных сегодня. Сравнительное тестирование.

21 октября 2006, суббота 22:17
для раздела Блоги
Зачем написана эта статья? Поначалу непонятно. На эту тему писалось немало. Но время идет, а проблемы остаются те же. Совершенствуются алгоритмы, наращивается объем хранилищ. Но! Информацию девать некуда.
Лучший выход из положения – вытереть все лишнее. Не помогает? – Вариант номер два – найти самую большую папку на диске и вытереть не глядя. Жалко? – Ничуть. Ведь неизвестно даже, что вытерли. Скорее всего – кучу старых фильмов, которые и так не хотелось смотреть.
Для тех, кому описанное выше не подходит, хотя бы по этическим соображениям, стоит поискать хороший архиватор. Это поможет. Обязательно. Но, ненадолго. До следующего раза.

Выберем панацею для временного облегчения страданий. Взору подвернулись, как и следовало ожидать, по большей части уже знакомые программы с очередными исправлениями и дополнениями, вроде 7-zip, WinRAR, ACE, WinZIP; и некоторые вроде как не очень известные для основной массы разработки (Compressia, PAQ, PPMonstr, Slim, EPM, Squeez, WinRK).
В привычных, как правило, используется ассиметричный способ сжатия данных, когда на сжатие затрачивается намного больше ресурсов и времени, чем на распаковку (да и еще в разумных пределах). И если не очень спешить – получиться весьма неплохой результат. Но этого мало. Хочется выжать побольше. Что ж – второй класс. Уже остыла шестая чашка кофе, красные глаза наблюдают за вяло меняющимися цифрами, увы не в фильме. Зато результат! Но все не так мрачно, да и не всегда так. Некоторые из этих программ выбиваются в лидеры по результатам сжатия. И тогда становится меньше сетевой трафик, откуда-то берется дополнительное свободное место. Увы, можно нарваться и на сырую версию, содержащую ошибки.
Кроме того, стоит помнить, что в каждом из протестированных архиваторов есть масса настроек, позволяющих регулировать как степень сжатие, так и время, затраченное на него.

Итак, сначала отмечу особенности и общие черты каждой из тестируемых программ.

7-Zip

Website / download: http://www.7-zip.org/
Стоимость: бесплатно
Полная поддержка: 7z, ZIP, GZIP, BZIP2, TAR
Распаковка: RAR, CAB, ISO, ARJ, LZH, CHM, Z, CPIO, RPM, DEB, NSIS
Есть локализация на 63 языках, включая русский и украинский
Особенности: для ZIP- и GZIP- архивирования плотность сжатия выше, чем при помощи других архиваторов; хороший результат – за хорошее время

Compressia

Website / download: http://www.compressia.com/
Особенности: один из лучших по степени сжатия архиваторов, но, увы проект приостановлен,
по крайней мере временно; пока только GUI-версия

EPM

Website / download: http://www.compression.ru/so/
Особенности: по степени сжатия – один из лидеров, однако полученный результат сильно зависит от количества выделяемой ему памяти

Infima Archiver

Website / download: http://www.megaupload.com/?d=D1EPX0VC
Пока еще малоизвестная для многих программа, с отличными показателями. Однако, когда начинаешь искать информацию о ней, часто попадаешь на статьи по типу «Infima - The best executed compression fraud» (http://www.c10n.info/archives/415) или «Компрессор на змеином масле» (http://imho.net.ua/2006/06/27/kompressor_na_zmeinom_masle.html). На этих сайтах высказывается предположение, что Infima – «это всего лишь объединение уже известных, действительно мощных специализированных архиваторов» (пред. ссылка). В любом случае, так это или нет, но если конечный продукт вышел хороший, то почему бы им не пользоваться? Время покажет. Возможно, мы еще услышим об этой разработке.


KGB

Website / download: http://kgbarchiver.sourceforge.net/
Полная поддержка: KGB, ZIP
Особенности: данная программа является клоном PAQ, как и WinUDA или Emilcont; хорошие результаты, проста в использовании

PAQ8

Website / download: http://www.cs.fit.edu/~mmahoney/compression/
Особенности: по степени сжатия – один из лидеров, однако полученный результат сильно зависит от количества выделяемой ему памяти; пока работает только в командной строке

PPMonstr

Website / download: http://compression.ru/ds
Особенности: по степени сжатия – стоит обратить внимание; увы – лишь в командной строке

Slim

Website / download: http://www.bars-trade.com/slim/
Особенности: аналогично предыдущему

Squeez

Website / download: http://www.speedproject.de/enu/squeez/
Стоимость: £27.95
Полная поддержка: SQX, ZIP, ARJ, LZH, RAR, CAB, GZIP, TAR, UUE, ACE, JAR, BZIP, 7z
Особенности: хороший результат – за хорошее время

WinACE

Website / download: http://www.winace.com/
Стоимость: $29.00
Полная поддержка: ACE, ZIP, LHA, MS-CAB, JAR
Распаковка: RAR, ARC, ARJ, GZIP, TAR, ZOO
Особенности: старый добрый знакомый

WinRAR

Website / download: http://www.rarsoft.com/
Стоимость: $29.95
Полная поддержка: ZIP, RAR
Распаковка: CAB, ARJ, LZH, TAR, GZ, ACE, UUE, BZ2, JAR, ISO, 7z, Z
Особенности: поддержка альтернативных потоков NTFS; поддержка русского языка; старый добрый знакомый-универсал

WinRK

Website / download: http://www.msoftware.co.nz/
Полная поддержка: ZIP, GZIP, BZIP2, TAR, TAR GZ, TAR BZ2, ISO
Распаковка: RAR
Особенности: по степени сжатия – один из лидеров, однако полученный результат сильно зависит от количества выделяемой ему памяти

WinZip

Website / download: http://www.winzip.com/
Стоимость: $29.95 (standart)
Полная поддержка: ZIP
Распаковка: CAB
Особенности: многоязычный интерфейс, включая русский; давно знакомая всем альтернатива

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







Какие же данные стоят таких мучений? Большинство предварительно не сжатых данных хорошо реагируют на архивацию. Это могут быть текстовые файлы, базы данных, таблицы, простые несжатые изображения или звук, разнообразные рабочие данные. Сложную графику, звук или видео, предварительно обработанных форматов (JPG, JP2, DJV, GIF, MPG, AVI, MOV, MP3, OGG и т.п.) не стоит надеяться ужать до приятных глазу размеров. Точно так же обстоит и с попытками сжимать уже сжатое, вроде архивов – возможно вы и порадуетесь некоторому результату, достигнутому за счет избыточности или служебной информации, но чаще нет.

Собственно теперь можно перейти и к тестированию. Стоит лишь заметить, что качество сжатия сильно зависит не только от алгоритма и настроек архиватора, но и от типа сжимаемых данных, количества доступной оперативной памяти (чаще, при использовании эффективных, но малоизвестных программ), оптимизации программы-архиватора под определенные системы (64bit, многоядерные) и многих других факторов.
Для тестирования были избраны три набора данных: файлы проектов выполненных в AutoCAD, набор WORD-овских файлов, исполнительные файлы Mplayer. Машину избрали специально с заниженными характеристиками, относительно современного уровня (увы, на такой машине запустить некоторые архиваторы с жесткими параметрами либо невозможно, либо очень даже бессмысленно, в связи с недостаточными ресурсами, а, следовательно, и со временем на архивацию).

Машина: AMD Duron 1600 Applebred, MB Soltek Via KT600, 512Mb DDR 400 Samsung, FX5500 128Mb AGP8x, OS Windows XP SP2.

Тест 1: 13 файлов формата dxf, общим объемом 47 842 602 байт, с малым разбросом по объему относительно среднего значения.
Тест 2: 14 файлов формата doc, общим объемом 16 228 352 байт, минимальный – 22 016 байт, максимальный – 3 631 616 байт.
Тест 3: 139 файлов и 10 папок, общим объемом 48 790 713 байт.

Результаты:




Тест 1 (47 842 602 байт оригинал)




Тест 2 (16 228 352 байт оригинал)




Тест 3 (48 790 713 байт оригинал)




Некоторые особенности:

- для архиватора 7-Zip нет смысла наращивать размер словаря, превышая объем сжимаемых данных
- для ЕРМ размер памяти (для максимального сжатия) не стоит превышать более, чем в 10 раз от сжимаемых данных, это не принесет эффекта
- при сжатии в PAQ8i, выше некоторого предела (ориентировочно выше уровня «-6» ), архивация проходит быстрее при предоставлении архиватору возможно большего количества памяти

Итоги

Как и ожидалось, самыми быстрыми, практически во всех тестах, несмотря на конечный результат, оказались WinACE и WinRAR. WinZIP, увы, оказался не на высоте, хотя и показал хорошее время (но это не обязательно тенденция, а всего лишь конкретный тест).
Рекордсменами по степени сжатия оказались PAQ8 и WinRK. Причем, сделали они это с большим отрывом от конкурентов (10-30%). И каждый раз этим конкурентом оказывался KGB, что не странно, и даже не совпадение, поскольку данная программа по утверждению многих изданий является клоном PAQ6. Однако, все эти программы крайне требовательны к объему оперативной памяти, и при наличии менее 1Гб, стоит задуматься о целесообразности их применения. Из трех этих разработок хочется выделить WinRK, поскольку она не только показала отличный результат, но и продемонстрировала относительно хорошее время, правда, сильно зависящие от параметров архивации. К слову сказать, параметры архивации использовались не предельные, так что можно было бы ожидать и более резких результатов.
7-zip, EPM и Squeez оказались хорошими рабочими лошадками. Средняя степень сжатия, при хорошем времени. И если 7-zip я использовал уже давно, то EPM и Squeez стали открытием.


Закон Мура пока еще никто не отменил, мощности современных машин постоянно возрастают, пусть и используется пока все та же технологическая основа. Но! Сколько уже слышали о новых разработках, запредельных на сегодняшний день частотах и объемах? Уже можно думать о 4-ядерных процессорах, поставить себе эдак 8Гб оперативки и сохранить все на 50-Гб Blu-ray диск. Но даже в простом случае, взять хоть 2-ядерные процессоры: если программа под многопоточность уже заточена, можно увидеть неплохой прирост производительности (от 10-20% и выше). Использование памяти с повышенными частотами и пониженными таймингами, тоже дает наглядные результаты, которые могут отличаться между собой на 25-30% (к примеру статья http://www.3dnews.ru/cpu/athlon_64_x2_am2/ ). Переход на 64-битные версии программ (например 7-Zip), на соответствующих машинах, может принести дополнительные 5-10% увеличения скорости сжатия ( http://overclockers.ru/lab/19614.shtml ).
Исходя из вышесказанного, можно предположить, что через 3-4 года те архиваторы и алгоритмы, которые сейчас не в почете из-за своих скоростных характеристик, могут оказаться очень даже востребованы. Да и к тому же появляются новые идеи и алгоритмы, вроде представления информации булевой формулой ( http://www.sciteclibrary.ru/rus/catalog/pages/7546.html ).
Кроме того, обработка аудио- или видео- контента, сжатой графики и некоторых других данных, тоже есть своего рода архивация, построенная зачастую на тех же алгоритмах, что и классические архиваторы, пусть и с своими специфическими модификациями. Среди «неформалов» можно назвать и такие программы как: ASPack, PECompact, DWG2ZIP, PDFCompress, Backup32 и т.п.
Самыми незаметным и неявными, для конечного пользователя, можно признать программы, которые обеспечивают оперативное сжатие данных для передачи в сети.
Еще одним из веяний является предоставление услуг хранения и архивации данных. Для частного пользователя, возможно, это и не особо актуально, но для крупных компаний зачастую это имеет смысл.
Рекомендовать пользоваться той или иной софтиной нет смысла – каждый определит для себя, что ему важней, скорость или конечный объем. Благо, для некритичных ситуаций и непривередливых пользователей всегда можно найти равновесие.
Да и вообще, стоит задуматься, - так ли нужна вам архивация; и если нужна, - то зачем? А уже после этого попытаться объять необъятное.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают