Автор LZ4 представил новый быстрый и эффективный алгоритм сжатия ZSTD
Название | Степень сжатия | Скорость кодирования | Скорость декодирования |
---|---|---|---|
MB/s | MB/s | ||
zlib 1.2.8 -6 | 3.099 | 18 | 275 |
ZSTD | 2.872 | 201 | 498 |
zlib 1.2.8 -1 | 2.730 | 58 | 250 |
LZ4 HC r127 | 2.720 | 26 | 1720 |
QuickLZ 1.5.1b6 | 2.237 | 323 | 373 |
LZO 2.06 | 2.106 | 351 | 510 |
Snappy 1.1.0 | 2.091 | 238 | 964 |
LZ4 r127 | 2.084 | 370 | 1590 |
LZF 3.6 | 2.077 | 220 | 502 |
Скорость декодирования в ZSTD составляет примерно 500 Мб/сек на одном ядре процессора Intel Core i5-4300U (1.9 GHz) при скорости кодирования на уровне 200 Мб/сек, что позволяет использовать данный алгоритм в сценариях по обработке данных в режиме реального времени. Кроме того, как и в LZ4, для ситуаций, когда данные сжимаются один раз и многократно распаковываются, в ZSTD предусмотрен режим форсированного сжатия, при котором достигается более высокий коэффициент сжатия за счёт увеличения времени упаковки.
Примечательной особенностью ZSTD также является возможность настройки потребления памяти, что позволяет использовать ZSTD на встраиваемых системах с небольшим размером ОЗУ или на серверах, одновременно обрабатывающих большое число сжатых потоков. Для декодирования необходимо заполнение таблиц трансформации, размер которых может быть настроен от 2.5 до 20 Кб, а также требуется выделение памяти под буфер с окном сжатия, который по умолчанию составляет 512 Кб, но может быть по желанию уменьшен до нескольких килобайт или увеличен до гигабайт (чем больше размер окна - тем выше уровень сжатия). В процессе сжатия данных дополнительно требуется выделение памяти под буфер сортировки, который по умолчанию составляет 128 Кб, но может быть произвольно уменьшен или увеличен.
На приведённом ниже графике отражены параметры эксперимента по сжатию файла, передаче потока по сети и его распаковке на другом конце соединения. Первый график показывает соотношение времени выполнения операции (ось Y) к пропускной способности канала связи в Мб/сек (ось X). Второй график отличается тем, что вместо времени используется относительное ранжирование алгоритмов, при котором за 1 принят лучший результат, а остальные показатели показаны в процентном соотношении к нему.
По графику видно, что LZ4 остаётся лидером на скоростях выше 50 Мб/сек, а ZSTD демонстрирует лучшие результаты на скоростях от 0.5 Мб/сек до 50 Мб/сек.
Источник: http://www.opennet.ru/opennews/art.shtml?num=41534
|
0 | Tweet | Нравится |
|