Projektet Pack har försökt skapa ett format för arkivering av filer, baserat pÄ SQLite-biblioteket och ZSTD-algoritmen (Zstandard). Den fÀrdiga prototypen, skriven i Pascal och distribuerad under Apache 2.0-licensen, övertrÀffade hastigheten för de mest anvÀnda arkivprogrammen, medan dess arbete bestod av att lÀsa data, komprimera med libzstd och utföra SQL-operationer för att lÀgga till komprimerade data i filen med SQLite-databasen.
Vid komprimering av en katalog med 81 000 filer, med en total storlek pĂ„ 1,25 GB, var pack 112 gĂ„nger snabbare Ă€n ZIP-verktar, och genomförde operationen pĂ„ 1,3 sekunder jĂ€mfört med 146 sekunder för ZIP. Arkivets storlek hos pack blev dessutom 23 % mindre (194 MB hos Pack och 253 MB hos ZIP). För jĂ€mförelse genomförde tar-verktyget packningen pĂ„ 4,7 sekunder utan komprimering och 28,5 sekunder med gzip-komprimering, RAR klarade testet pĂ„ 27,5 sekunder, medan 7z tog 54,2 sekunder. Arkivstorlekarna blev: tar.gz â 214 MB, RAR â 235 MB, 7z â 135 MB. Det noteras att nĂ€r det gĂ€ller hastigheten för uppackning och random access till filer övertrĂ€ffar Pack ocksĂ„ andra arkivprogram och anvĂ€nder samtidigt mindre arbetsminne. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s snabbare Ă€n ZIP med 2.7 gĂ„nger 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
Inga uppgifter nĂ€mns om hur filcachen pĂ„verkar testresultaten. Troligtvis beror den lĂ„ga hastigheten för ZIP pĂ„ ordningen för körning av testerna utan att ta hĂ€nsyn till datacaching i minnet â testet med zip kördes med kall cache, medan övriga tester genomfördes med varm cache. Under normala förhĂ„llanden visar Zstandard en 3-5 gĂ„nger högre komprimeringshastighet jĂ€mfört med zlib och tvĂ„ gĂ„nger snabbare uppackning, med en komprimeringsnivĂ„ som Ă€r 10-15 % högre.
TillÀgg: En liknande idé om att lagra komprimerade filer som blobbar i SQLite-databasen realiserades 2014 i arkivprogrammet sqlar, skapat av utvecklarna av SQLite som ett experiment för att utvÀrdera effektiviteten av att lagra blobbar i SQLite. I sqlar anvÀnds zlib för komprimering och filstorleken Àr ungefÀr 2 % större Àn hos ZIP-verktyget.
KĂ€lla: opennet.ru
