URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 51210
[ Назад ]

Исходное сообщение
"Сравнение производительности и степени сжатия gzip, bzip2 и ..."

Отправлено opennews , 27-Мрт-09 13:48 
"GZIP vs. BZIP2 vs. LZMA (http://odzangba.wordpress.com/2009/03/25/gzip-vs-bzip2-vs-lzma/)" - сравнение производительности и степени сжатия gzip 1.3.12, bzip2 1.0.5, LZMA 4.32.0beta3.


Сжатие пустого файла, размером 1Гб, состоящего из нулей:


-  GZIP: 12.36 сек. CPU 99%, 1018 Кб
-  BZIP2: 32.07 сек. CPU 98%, 785 байт (!)
-  LZMA: 873.79 сек. CPU 96%, 148 Кб

Сжатие архива системных файлов (120 Мб):


-  GZIP: 19.42 сек CPU 89%, 39 Мб
-  BZIP2: 30.76 сек. CPU 93%, 36 Мб
-  LZMA: 132.21 сек. CPU 92%, 25 Мб (!)

Сжатие видеофайла (175 Мб):


-  GZIP: 10.94 сек. CPU 78%, 173 Мб
-  BZIP2: 55.15 сек. CPU 94%, 173 Мб
-  LZMA: 138.74 сек. CPU 93%, 174 Мб


URL: http://odzangba.wordpress.com/2009/03/25/gzip-vs-bzip2-vs-lzma/
Новость: https://www.opennet.ru/opennews/art.shtml?num=20958


Содержание

Сообщения в этом обсуждении
"Сравнение производительности и степени сжатия gzip, bzip2 и "
Отправлено Аноним , 27-Мрт-09 13:48 
Гзип по скорости заруливает всех.

"Сравнение производительности и степени сжатия gzip, bzip2 и "
Отправлено аноним , 27-Мрт-09 14:09 
>Гзип по скорости заруливает всех.

На сжатие. Распаковывает lzma по-прежнему быстрее.


"Сравнение производительности и степени сжатия gzip, bzip2 и "
Отправлено User294 , 27-Мрт-09 19:21 
>Гзип по скорости заруливает всех.

Ну и жмет дохлее всех, соответственно.Если смириться с еще более дохлым сжатием, LZO или QuickLZ по скорости порвут гзипа играючи (у них декомпрессия вообще обычно упирается в скорость работы дисков, но зато и сжатие еще хилее :P).

А тест довольно тупой.Например, нули давить - не показательно, синтетика в хучшем виде.А в среднем по больнице - bzip2 имхо можно закапывать: жмет заурядно и медленно.Декомпрессится тоже медленно.LZMA хоть и тормозно жмет но зато - жмет сильно и декомпрессится быстро.Более того - на реальных наборах данных LZMA почти всегда уделывает bzip2 по степени сжатия.Зачастую достаточно заметно.


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено goshanecr , 27-Мрт-09 14:15 
А может кто нибудь сказать почему пустой файл сжимается аж в 148 килобайт? Там образно говоря разве нельзя записать что последовательность из миллиарда элементов и единичный элемент байт 0? Ну сотня байт.. но не сто же килобайт то..

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Sem , 27-Мрт-09 14:56 
bzip2 примерно так и сделал.

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Ыку , 27-Мрт-09 14:57 
>А может кто нибудь сказать почему пустой файл сжимается аж в 148
>килобайт? Там образно говоря разве нельзя записать что последовательность из миллиарда
>элементов и единичный элемент байт 0? Ну сотня байт.. но не
>сто же килобайт то..

Все зависит от размера словаря. Чем он больше тем больше повторений можно поймать и тем меньше будет количество служебной информации.


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено User294 , 28-Мрт-09 15:22 
> Ну сотня байт.. но не сто же килобайт то..

В таком предельном случае всех зарулит обычное примитивное RLE-кодирование, суть которого сводится к тому что сохраняется счетчик повторов и то чего повторять.Так можно пару миллиардов нулей тиснуть в десяток байтов, если поюзать оптимизированный вариант RLE с счетчиком должной разрядности (его должно хватить на сохранение числа "пара миллиардов").Проблемы будут тогда когда на вход подадут не нули а реальные данные - там конечно блоки заполненые одинаковыми байтами бывают но - достаточно немного, так что эффективность RLE на более полезных реалистичных данных - отвратная :)

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


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Andrew Kolchoogin , 27-Мрт-09 15:02 
Плохой, негодный тест. У 7z, использующего алгоритм LZMA для сжатия, заметно побольше ключей для достижения максимальной компрессии. У меня есть ощущение, что размер словаря не раскачали до максимума.

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено User294 , 28-Мрт-09 15:34 
>словаря не раскачали до максимума.

Зависит от хардвара ;).А вдруг у них оперативки было мало?А еще они поюзали дреееееееееевний вариант LZMA - 4.4х версий.При текущей версии LZMA SDK всего-то 4.65 ... oO


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Konwin , 27-Мрт-09 15:10 
Что любопытно - сколько раз сам что-то жал - не получалось у меня чтоб в 7Zip с LZMA было медленнее чем в нём же с BZip2...

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Angel IL , 27-Мрт-09 16:20 
Аттож, и у меня не получалось бзипом сжать быстрее чем жмет 7зип... что то, кто то, где то врет...

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено User294 , 28-Мрт-09 23:07 
Подсказать как тормознуть 7zip или сами догадаетесь? :)
Хинт: в 7zip можно указывать длину совпадений которая "устраивает" искалку совпадений, так что он будет до упора искать длииииинные совпадения.Это тормознет сжатие и улучшит его (если в входных данных есть совпадения длиннее чем заданная величина).Кстати в клинических случаях типа "миллиард нулей" задирание этой величины может заметно улучшить степень сжатия.На практически ценных данных выигрыш от выкручивания этого параметра обычно не особо большой а вот тормозов он добавляет конкретно.

Хинт2: в графическом виндовом варианте можно покрутить fast, ... normal, ... ultra и посмотреть чем отличаются их параметры :).Отличие там не только в словаре...


"Сравнение производительности и степени сжатия gzip, bzip2 и "
Отправлено Ivan , 27-Мрт-09 16:18 
> Сжатие видеофайла (175 Мб) ...

Надо было несжатый AVI-файл сжимать, тогда результат нёс бы хоть какую-то информацию.


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Serega , 27-Мрт-09 19:16 
а системные файлы == текстовые конфиги?

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено pavlinux , 27-Мрт-09 19:34 
Сдаётся мне,  что у него диск тормозил!


"Сравнение производительности и степени сжатия gzip, bzip2 и "
Отправлено frol , 27-Мрт-09 19:40 
По-моему бессмысленный бенчмарк.

Насколько я понимаю, алгоритм LZMA силен не скоростью сжатия, а скоростью распаковки. Где соответствующий бенчмарк?

Могу также предположить, что compress обгонит gzip по скорости на всех проведенных  тестах.


"Сравнение производительности и степени сжатия gzip, bzip2 и "
Отправлено User294 , 28-Мрт-09 23:08 
>Могу также предположить, что compress обгонит gzip по скорости на всех проведенных
> тестах.

А уж lzop использующий LZO и вовсе всех порвет.Правда вот он и жмет хуже чем gzip - чудес не бывает...


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено pavlinux , 27-Мрт-09 20:37 
$  time -f "%U seconds CPU %P" gzip -c9 BIGNULL > BIGNULL.gz

112.66 seconds CPU 95%

$ time -f "%U seconds CPU %P" bzip2 -c9 BIGNULL > BIGNULL.bz2

271.56 seconds CPU 96%

$ time -f "%U seconds CPU %P" mksquashfs ./BIGNULL  BIGNULL.sqsh -no-recovery -no-exports -no-progress -no-sparse -processors 4 -all-root -nopad

166.24 seconds CPU 161%

$ time -f "%U seconds CPU %P" lzma --threads=4 -c9 BIGNULL > BIGNULL.lzma

1416.45 seconds CPU 97%

$ time -f "%U seconds CPU %P" rar a -m5 -s BIGNULL.rar BIGNULL

762.87 seconds CPU 98%


~> ls -la BIGNULL*

-rw------- 1 pavel users 8589918208 Мар 27 19:31 BIGNULL
-rwx------ 1 pavel users    9766216 Мар 27 20:13 BIGNULL.sqsh
-rw------- 1 pavel users    8336307 Мар 27 19:43 BIGNULL.gz
-rw------- 1 pavel users     581249 Мар 27 20:32 BIGNULL.rar
-rw------- 1 pavel users     280375 Мар 27 20:11 BIGNULL.lzma
-rw------- 1 pavel users       6034 Мар 27 19:51 BIGNULL.bz2


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Анонимус , 28-Мрт-09 16:19 
ЦПУ 161% - это как? Многопоточность???

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено Аноним , 27-Мрт-09 21:27 
Выходит, самым оптимальным видится BZIP2. LZMA еще не дорос по параметрам "цена/качество"

"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено tamerlan311 , 27-Мрт-09 22:44 
>Выходит, самым оптимальным видится BZIP2. LZMA еще не дорос по параметрам "цена/качество"
>

Дорос, тут тестировали LZMA видимо с максимальным сжатием, на с жатии с коэффициентом 2 LZMA как правило делает bzip2 и по скорости и по коэффициенту.

http://tukaani.org/lzma/benchmarks

Вот более адекватный тест.


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено yantux , 27-Мрт-09 23:23 
А 7z?

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


"Сравнение производительности и степени сжатия gzip, bzip2 и ..."
Отправлено викиочевидность , 28-Мрт-09 00:23 
lzma