Eksperimentoni duke përdorur SQLite si një kontejner për arkivimin e skedarëve

Projekti Pack u përpoq të krijonte një format të arkivimit të skedarëve bazuar në bibliotekën SQLite dhe algoritmin e kompresimit ZSTD (Zstandard). Prototipi i përgatitur, i shkruar në Pascal dhe i shpërndarë nën licencën Apache 2.0, i tejkaloi arkivuesit më të zakonshëm në shpejtësinë e krijimit të arkivave, pavarësisht faktit se puna e tij ishte e kufizuar në leximin e të dhënave, kompresimin e tyre me bibliotekën libzstd dhe kryerjen e operacioneve SQL në shtoni të dhëna të kompresuara në një skedar me një bazë të dhënash SQLite.

Gjatë kompresimit të një drejtorie me 81 mijë skedarë me një madhësi totale prej 1.25 GB, paketa ishte 112 herë më e shpejtë se programi ZIP, duke përfunduar operacionin në 1.3 sekonda kundrejt 146 sekondave për ZIP. Madhësia e arkivit për paketën ishte 23% më e vogël (194 MB për Pack dhe 253 MB për ZIP). Për krahasim, mjeti tar përfundoi paketimin në 4.7 sekonda pa komprimim dhe në 28.5 sekonda me kompresim gzip, arkivuesi RAR përfundoi testin në 27.5 sekonda dhe 7z në 54.2 sekonda. Madhësitë e arkivit ishin: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Vihet re se për sa i përket shpejtësisë së zbërthimit dhe aksesit të rastësishëm në skedarë, Pack është gjithashtu përpara arkivuesve të tjerë, ndërsa konsumon më pak RAM. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s më i shpejtë ZIP 2.7 herë tar.gz: 214 MB, 28.5 sx 5.1 RAR: 235 MB, 27.5 sx 5.3 MB: 1345 MB: 4.7 MB SX 31

Nuk përmendet efekti i cache-it të skedarëve në rezultatet e testit. Ndoshta, shpejtësia e ulët e ZIP është për shkak të rendit në të cilin testet u nisën pa marrë parasysh ruajtjen e të dhënave në memorie - testi me zip u nis me një memorie të ftohtë, dhe pjesa tjetër e testeve me një memorie të ngrohtë. Në kushte normale, Zstandard shfaq shpejtësi ngjeshjeje 3-5 herë më të shpejta se zlib dhe 10 herë më të shpejtë dekompresimi, me nivele kompresimi 15-XNUMX% më të larta.

Shtim: Një ide e ngjashme e ruajtjes së skedarëve të ngjeshur në formën e blobs në një bazë të dhënash SQLite u zbatua në vitin 2014 në arkivuesin sqlar, krijuar nga zhvilluesit e SQLite si një eksperiment për të vlerësuar efikasitetin e ruajtjes së blobs në SQLite. sqlar përdor zlib për kompresim dhe madhësia e skedarit është rreth 2% më e madhe se programi ZIP.

Burimi: opennet.ru

Shto një koment