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 обратитесь к полному списку изменений.
Комментарии (0)