LINUX.ORG.RU

Самый быстрый алгоритм / библиотека на распаковке

 , , , ,


1

1

Собственно интересует библиотека всякого сжатия без потерь типа zstd, всякие lz, можно и гугловские.

Скорость сжатия не важна, низкий размер архива и главное быстрая распаковка (возможно даже низкая нагрузка на проц).

Например тут https://github.com/facebook/zstd написано в бенчмарке что lz4 1.9.2 = 4530 MB/s на распаковке и ничего про нагрузку на проц, память.

Может кто находил сравнение по скоростям и с нагрузкой на систему?

P.S. Факт: Встроенная функция бекапа игры в Steam использует gzip с AVX ускорениями, не реально медленное и жрет все ресурсы процессора.

★★★★★

Последнее исправление: bhfq (всего исправлений: 1)

низкий размер архива и главное быстрая распаковка (возможно даже низкая нагрузка на проц)

«дёшево, хорошо и быстро» не бывает.

А вообще очевидный zstd очевиден.

intelfx ★★★★★
()

А подумать? Эти скорости - при нагрузке одного ядра на 100%. lz4 используется в ZFS как дефолтный алгоритм сжатия. Применяю на всех датасетах, разницы между «с» и «без» не заметил, потому что I/O в любом случае медленнее. В десятки раз.

anonymous-angler ★☆
()
Ответ на: комментарий от intelfx

lz4hc уже немного получше жмёт, при практически той же скорости распаковки, что у «просто» lz4

Compressor nameCompress.Decompress.Compr. sizeRatio
lz4hc 1.9.2 -1131 MB/s4071 MB/s8380376939.54
lz4hc 1.9.2 -481 MB/s4210 MB/s7980790937.65
lz4hc 1.9.2 -933 MB/s4378 MB/s7788444836.75
zstd 1.4.3 -1480 MB/s1203 MB/s7350882334.68
zstd 1.4.3 -2356 MB/s1067 MB/s6959451132.84
zstd 1.4.3 -5104 MB/s932 MB/s6399374730.19
greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 2)
Ответ на: комментарий от intelfx

Это верно. Я просто не приметил слона и ответил на это требование:

главное быстрая распаковка (возможно даже низкая нагрузка на проц)

С другой стороны, не ясно для чего оно ОП нужно, а в качестве «бесплатного» прозрачного сжатия lz4 - весьма неплохо:

% zfs get compressratio zpool0/system/gentoo
NAME                  PROPERTY       VALUE  SOURCE
zpool0/system/gentoo  compressratio  1.65x  -
anonymous-angler ★☆
()

P.S. Факт: Встроенная функция бекапа игры в Steam использует gzip с AVX ускорениями, не реально медленное и жрет все ресурсы процессора.

gzip, конечно, менее эффективен, чем вышеупомянутые zstd и lz4, но сам факт того, что алгоритм «жрет все ресурсы процессора» значит, что данная реализация хорошо использует возможности железа. Если бы другая реализация gzip пыхтела бы на одном ядре, не грузя его на 100%, то времени потребовалось бы гораздо больше.

annulen ★★★★★
()

ничего про нагрузку на проц, память.

Память надо бенчить на своих тестовых данных. Про lz4 разработчик пишет, что алгоритм не использует дополнительной памяти при распаковке, см. https://github.com/lz4/lz4/issues/661

А проц - чем больше он используется, тем лучше реализация алгоритма.

annulen ★★★★★
()
Ответ на: комментарий от annulen

А проц - чем больше он используется, тем лучше реализация алгоритма.

так и запишем, кроме paq и lzma ничего нет, а то zstd/lz4/lzo меньше проц жрут

anonymous
()
Ответ на: комментарий от annulen

какой-нибудь самый обычный zip ultra сжал бы данные и быстрее и лучше и не загружая процессор, что gzip что bz2 те еще тормоза.

факт в том что многомиллионная(ардная?) компания valve ничего не делает.

bhfq ★★★★★
() автор топика
Ответ на: комментарий от bhfq

Сравни, я почти на 100% уверен, что avx-версия сожмет данные намного быстрее

факт в том что многомиллионная(ардная?) компания valve ничего не делает.

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

annulen ★★★★★
()
Ответ на: комментарий от bhfq

bz2

у bz2 сейчас наверное вообще не осталось разумных ниш для применение, lzma и zstd все съели

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.