A Pack projekt megpróbálta létrehozni az archív fájlok formátumát, amely az SQLite könyvtáron és a ZSTD (Zstandard) tömörítési algoritmuson alapul. A Pascal nyelven írt, Apache 2.0 licenc alatt terjesztett prototípus gyorsabban készítette el az archívokat, mint a legelterjedtebb archíváló programok, miközben a munkája a data olvasására, a libzstd könyvtárral való tömörítésre és az SQL műveletek végrehajtására korlátozódott a tömörített adatok SQLite adatbázis fájlhoz való hozzáadásakor.
Egy 81 ezer fájlt tartalmazó könyvtár tömörítésekor, amelynek összes mérete 1,25 GB, a pack 112-szer gyorsabb volt, mint a ZIP, mivel 1,3 másodperc alatt végezte el az operációt, szemben a ZIP 146 másodpercével. A pack archívumának mérete 23%-kal kisebb lett (194 MB a Packnél és 253 MB a ZIP-nél). Összehasonlításképpen, a tar 4,7 másodperc alatt csomagolta az adatokat tömörítés nélkül, és 28,5 másodperc alatt gzip tömörítéssel, a RAR 27,5 másodperc alatt végezte a tesztet, míg a 7z 54,2 másodpercet vett igénybe. Az archívumok mérete: tar.gz — 214 MB, RAR — 235 MB, 7z — 135 MB. Megjegyzendő, hogy a pack a fájlok kicsomagolásának sebessége és a véletlenszerű hozzáférés szempontjából is megelőzi a többi archíválót, miközben kevesebb memóriát fogyaszt. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s gyorsabb a ZIP-nél 2,7-szer tar.gz: 214 MB, 28.5 s x 5.1 RAR: 235 MB, 27.5 s x 5.3 tar: 1345 MB, 4.7 s x 31 Pack: 194 MB, 1.3 s x 112
A fájlok gyorsítótárának hatásáról a teszteredményekre nem esik szó. Valószínű, hogy a ZIP alacsony sebessége a tesztek indítási sorrendjéből ered, figyelembe véve a memóriában lévő adatok gyorsítótárát — a zip tesztje hideg gyorsítótárral indult, míg a többi teszt melegített állapotban zajlott. Normális körülmények között a Zstandard 3-5-ször magasabb tömörítési sebességet mutat a zlib-hez képest, és a kibővített kicsomagolás 10-15%-kal gyorsabb.
Kiegészítés: Hasonló elképzelés a tömörített fájlok blob formában történő tárolásáról SQLite adatbázisban 2014-ben valósult meg az sqlar archíválóban, amelyet az SQLite fejlesztői hoztak létre kísérletként a blobok SQLite-beli tárolásának hatékonyságának értékelésére. Az sqlar a zlib-t alkalmazza tömörítésre, és a fájlok mérete körülbelül 2%-kal nagyobb, mint a ZIP esetében.
Forrás: opennet.ru
