Випуск crabz 0.7, утиліти для багатопоточного стиснення та розпакування, написаної на Rust

Відбувся випуск утиліти crabz, що реалізує багатопоточний стиск та розпакування даних, аналогічно подібній утиліті pigz. Обидві ці утиліти є багатопотокові варіанти програми gzip, оптимізовані для роботи на багатоядерних системах. Сам же crabz відрізняється тим, що написаний мовою програмування Rust, на відміну від утиліти pigz, написаної C (і, частково, C++), і демонструє значний приріст продуктивності, у деяких випадках досягає 50%.

На сторінці розробників є детальне порівняння швидкості роботи обох утиліт з різними ключами та використаними бекендами. Заміри проводилися на півторагігабайтовому csv-файлі з використанням як тестовий стенд ПК на базі AMD Ryzen 9 3950X 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.

Джерело: opennet.ru

Додати коментар або відгук