Выпуск crabz 0.7, утилиты для многопоточного сжатия и распаковки, написанной на Rust
Состоялся выпуск утилиты crabz, реализующей многопоточное сжатие и распаковку данных, аналогично подобной утилите pigz. Обе эти утилиты представляют собой многопоточные варианты программы gzip, оптимизированные для работы на многоядерных системах. Сам же crabz отличается тем, что написан на языке программирования Rust, в отличии от утилиты pigz, написанной на C (и, частично, на C++), и демонстрирует значительный прирост производительности, в некоторых случаях достигающий 50%.
На странице разработчиков есть подробное сравнение скорости работы обеих утилит с различными ключами и использованными бэкендами. Замеры производились на полуторагигабайтовом csv-файле с использованием в качестве тестового стенда ПК на базе AMD Ryzen 9 3950×16-Core Processor и с 64 GB DDR4 RAM и на операционной системе Ubuntu 20. Для тех же, кто не хочет погружаться в подробный разбор производительности, подготовлен краткий отчёт:
- crabz с использованием бэкенда zlib идентичен pigz по производительности;
- с использованием бэкенда zlib-ng до полутора раз быстрее, чем pigz;
- crabz с бэкендом rust незначительно (на 5–10%) быстрее pigz.
По словам разработчиков, кроме более высокой скорости работы, crabz, в сравнении с pigz, также обладает следующими преимуществами:
- crabz с бэкендом deflate_rust использует код, полностью написанный на Rust, что является более безопасным;
- crabz является кросплатформенным и поддерживает Windows, что может привлечь больше участников;
- crabz поддерживает больше форматов (Gzip, Zlib, Mgzip, BGZF, Raw Deflate и Snap).
Несмотря на полную работоспособность, crabz характеризуется разработчиком, как концептуальный прототип CLI-инструмента, использующий crate-пакет GZP.
Источник: http://www.opennet.ru/opennews/art.shtml? num=56051
© OpenNet