Выпущен алгоритм сжатия без потерь LZ4 1.10

LZ4, широко используемый кроссплатформенный алгоритм сжатия с открытым исходным кодом, известный своей скоростью и эффективностью, только что достиг версии 1.10.

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

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

Что нового в LZ4 1.10

До сих пор LZ4 работал в основном как однопоточный процесс. Однако выпуск 1.10 полностью меняет эту ситуацию.

Многопоточность LZ4: Изменение в игре

Главная особенность LZ4 1.10 – многопоточность. Позволяя нескольким потокам обрабатывать данные одновременно, LZ4 значительно сокращает время, необходимое для сжатия и распаковки больших файлов.

Это особенно полезно при использовании высоких режимов сжатия, которые обычно более требовательны к процессору. Последние бенчмарки наглядно демонстрируют улучшения в различных операционных системах:

  • В Windows 11 при использовании процессора Intel 7840HS время сжатия увеличилось с 13,4 секунды до всего 1,8 секунды – в 7,4 раза.
  • Для пользователей macOS с чипом M1 Pro время сжатия сократилось с 16,6 секунды до 2,55 секунды, что в 6,5 раза выше.
  • Для пользователей Linux на i7-9700k время сжатия уменьшилось с 16,2 секунды до 3,05 секунды – прирост скорости в 5,4 раза.

Эти улучшения касаются не только сжатия. Декомпрессия также выигрывает от многопоточности, хотя и в меньшей степени, поскольку современные диски nvme все еще могут использовать один поток.

Однако перекрытие операций ввода-вывода с процессами декомпрессии еще больше повышает производительность.

Усовершенствованное сжатие словарей

Еще одно значительное обновление в LZ4 1.10 – официальная поддержка сжатия и распаковки словарей, которая перешла из разряда экспериментальных в разряд полностью поддерживаемых.

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

Новый уровень сжатия и другие улучшения

В LZ4 1.10 появилась новая опция сжатия «Level 2», которая обеспечивает баланс между производительностью и степенью сжатия, являясь оптимальным решением для многих приложений.

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

Наконец, релиз поддерживает менее известные архитектуры, такие как LoongArch, RISC-V и другие, обеспечивая переносимость LZ4 на различные платформы.

Для подробного ознакомления со всеми нововведениями в LZ4 1.10 обратитесь к полному списку изменений.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)