Experimentéiere mat SQLite als Container fir Dateien ze archivéieren

De Pack-Projet huet probéiert e Dateiarchivformat ze kreéieren baséiert op der SQLite-Bibliothéik an dem ZSTD (Zstandard) Kompressiounsalgorithmus. De preparéierte Prototyp, geschriwwen am Pascal a verdeelt ënner der Apache 2.0 Lizenz, huet déi meescht üblech Archiver an der Geschwindegkeet vun der Schafung vun Archiven iwwerschratt, trotz der Tatsaach, datt seng Aarbecht limitéiert war fir Daten ze liesen, se mat der libzstd Bibliothéik ze kompriméieren an SQL Operatiounen auszeféieren. füügt kompriméiert Donnéeën op eng Datei mat enger Datebank SQLite.

Wann Dir e Verzeechnes mat 81 Tausend Dateien mat enger Gesamtgréisst vun 1.25 GB kompriméiert, war de Pack 112 Mol méi séier wéi d'ZIP Utility, d'Operatioun fäerdeg an 1.3 Sekonnen versus 146 Sekonnen fir ZIP. D'Archivgréisst fir Pack war 23% méi kleng (194 MB fir Pack an 253 MB fir ZIP). Zum Verglach huet d'Tar Utility d'Verpackung an 4.7 Sekonnen ouni Kompressioun ofgeschloss an an 28.5 Sekonnen mat gzip Kompressioun, huet de RAR Archiver den Test an 27.5 Sekonnen ofgeschloss, an 7z an 54.2 Sekonnen. D'Archivgréissten waren: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Et gëtt bemierkt datt wat d'Geschwindegkeet vun der Auspackung an de zoufällegem Zougang zu Dateien ugeet, Pack ass och virun aneren Archiver, wärend manner RAM verbraucht. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s méi séier ZIP 2.7 Mol tar.gz: 214 MB, 28.5 sx 5.1 RAR: 235 MB, 27.5 sx 5.3 tar: 1345 MB x 4.7 MB, 31 MB, 194 MB, 1.3 MB, 112 MB SX XNUMX

Et gëtt keng Ernimmung vum Effekt vum Dateicache op d'Testresultater. Wahrscheinlech ass déi geréng Geschwindegkeet vum ZIP wéinst der Uerdnung an där d'Tester lancéiert goufen ouni Bezuch op d'Datencaching an der Erënnerung - den Test mam Zip gouf mat engem kale Cache gestart, an de Rescht vun den Tester mat engem waarme Cache. Ënner normalen Konditiounen weist Zstandard 3-5 Mol méi séier Kompressiounsgeschwindegkeet wéi zlib an 10 Mol méi séier Dekompressioun, mat 15-XNUMX% méi héich Kompressiounsniveauen.

Zousätzlech: Eng ähnlech Iddi fir kompriméiert Dateien a Form vu Blobs an enger SQLite Datebank ze späicheren gouf am Joer 2014 am sqlar Archiver implementéiert, erstallt vun den SQLite Entwéckler als Experiment fir d'Effizienz vun der Späichere vu Blobs an SQLite ze evaluéieren. sqlar benotzt zlib fir Kompressioun an d'Dateigréisst ass ongeféier 2% méi grouss wéi de ZIP Utility.

Source: opennet.ru

Setzt e Commentaire