Wydanie crabz 0.7, wielowątkowego narzędzia do kompresji i dekompresji napisanego w języku Rust

Wydano narzędzie crabz, które implementuje wielowątkową kompresję i dekompresję danych, podobnie jak podobne narzędzie pigz. Obydwa te narzędzia to wielowątkowe wersje programu gzip, zoptymalizowane do działania w systemach wielordzeniowych. Sam Crabz różni się tym, że jest napisany w języku programowania Rust, w przeciwieństwie do narzędzia pigz napisanego w C (i częściowo w C++) i wykazuje znaczny wzrost wydajności, w niektórych przypadkach sięgający 50%.

Na stronie programistów znajduje się szczegółowe porównanie szybkości obu narzędzi przy użyciu różnych kluczy i zastosowanych backendów. Pomiarów dokonano na półtora gigabajtowym pliku csv przy użyciu komputera PC z 9-rdzeniowym procesorem AMD Ryzen 3950 16X z 64 GB pamięci RAM DDR4 i systemem operacyjnym Ubuntu 20. Dla tych, którzy nie chcą nurkować w szczegółową analizę wyników, Przygotowano krótki raport:

  • crabz korzystający z backendu zlib ma identyczną wydajność jak pigz;
  • korzystanie z backendu zlib-ng nawet półtora razy szybciej niż pigz;
  • crabz z zapleczem rdzy jest nieco (5-10%) szybszy niż pigz.

Według twórców, oprócz większej prędkości, crabz w porównaniu z pigz ma również następujące zalety:

  • crabz z backendem deflate_rust używa kodu w całości napisanego w Rust, co jest bezpieczniejsze;
  • crabz jest wieloplatformowy i obsługuje system Windows, co może przyciągnąć więcej uczestników;
  • crabz obsługuje więcej formatów (Gzip, Zlib, Mgzip, BGZF, Raw Deflate i Snap).

Choć w pełni funkcjonalny, crabz jest opisywany przez twórcę jako koncepcyjny prototyp narzędzia CLI wykorzystującego pakiet skrzyni GZP.

Źródło: opennet.ru

Dodaj komentarz