Pack projekti käivitas katse luua SQLite'i teegi ja ZSTD (Zstandard) tihendusalgoritmi põhjal failide arhiivimise formaat. Valmis prototüüp, mis on kirjutatud Pascal keeles ja levitatakse Apache 2.0 litsentsi alusel, ületas arhiivide loomise kiiruselt kõige levinumaid arhiivereid, samas kui selle töö piirdus andmete lugemise, libzstd raamatukoguga tihendamise ning SQL-operatsioonide teostamisega tihendatud andmete lisamiseks SQLite andmebaasifaili.
81 000 faili mahutav kataloog, kokku 1,25 GB suurune, pakkus paremuse ZIP utiliidist 112 korda, tehes operatsiooni 1,3 sekundiga võrreldes ZIP-i 146 sekundiga. Paki arhiivi suurus jäi 23% väiksemaks (194 MB Packis ja 253 MB ZIP-is). Võrdluseks: tar utiliit pakkis ilma tihendamiseta 4,7 sekundiga ja gzip meetodiga tihendades 28,5 sekundiga; RAR tegi testi 27,5 sekundiga ning 7z 54,2 sekundiga. Arhiivide suurused olid: tar.gz — 214 MB, RAR — 235 MB, 7z — 135 MB. Tõdetakse, et Pack ületab teisi arhiivereid kiiruselt, samuti on sellele juurdepääs ja mälutarve väiksem. ZIP: 253 MB, 146 s 7z: 135 MB, 54,2 s 2,7 korda kiiremini kui ZIP 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
Failtidefailide failideviga kiirusest puudub teave. Tõenäoliselt on madal ZIP-i kiirus tingitud testide käivitamisjärjekorrast, mis ei arvesta andmete vahemällu salvestamist — ZIP-testi käivitatud külma vahemäluga, samas kui teised testid käivitati soojendatud vahemäluga. Tavalistes tingimustes näitab Zstandard 3-5 korda kõrgemat tihendamise kiirust võrreldes zlib-iga ja kahekordset kiiremat dekompressiooni, samas kui tihendamise tase on 10-15% kõrgem.
Täiendav teave: Sarnane idee tihendatud failide salvestamisest blob-ide kujul SQLite andmebaasis ellu viidud 2014. aastal arhiivimisprogrammis sqlar, mille töötasid välja SQLite arendajad eksperimentaalselt, et hinnata blob-ide salvestamise tõhusust SQLite-s. Sqlar kasutab tihendamiseks zlib-i ja failide suurus on umbes 2% suurem kui ZIP-utiliidil.
Allikas: opennet.ru
