Ékspérimén nganggo SQLite salaku wadah pikeun ngarsipkeun file

Proyék Pack nyobian nyiptakeun format arsip file dumasar kana perpustakaan SQLite sareng algoritma komprési ZSTD (Zstandard). Prototipe anu disusun, ditulis dina Pascal sareng disebarkeun di handapeun lisénsi Apache 2.0, ngalangkungan arsip anu paling umum dina laju nyiptakeun arsip, sanaos kanyataan yén karyana dugi ka maca data, ngompres ku perpustakaan libzstd sareng ngalaksanakeun operasi SQL pikeun tambahkeun data anu dikomprés kana file anu nganggo database SQLite.

Nalika compressing hiji diréktori kalawan 81 sarébu file kalawan ukuran total 1.25 GB, pak éta 112 kali leuwih gancang ti utiliti ZIP, completing operasi dina 1.3 detik versus 146 detik keur ZIP. Ukuran arsip pikeun pak éta 23% leuwih leutik (194 MB pikeun Pack jeung 253 MB pikeun ZIP). Pikeun babandingan, utilitas tar ngalengkepan bungkusan dina 4.7 detik tanpa komprési sareng dina 28.5 detik kalayan komprési gzip, arsip RAR réngsé tés dina 27.5 detik, sareng 7z dina 54.2 detik. Ukuran arsip nyaéta: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Hal ieu dicatet yén dina watesan speed unpacking sarta aksés acak kana file, Pek oge payun ti arsip séjén, bari consuming kirang RAM. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s gancang ZIP 2.7 kali tar.gz: 214 MB, 28.5 sx 5.1 RAR: 235 MB, 27.5 sx 5.3 tar: 1345 MB, 4.7 tar: 31 MB, 194 MB SX 1.3

Teu aya anu disebatkeun ngeunaan pangaruh cache file dina hasil tés. Panginten, laju ZIP anu rendah disababkeun ku urutan tés diluncurkeun tanpa merhatikeun cache data dina mémori - tés nganggo zip diluncurkeun ku cache tiis, sareng sésa tés nganggo cache anu haneut. Dina kaayaan normal, Zstandard némbongkeun laju komprési 3-5 kali leuwih gancang ti zlib jeung 10 kali leuwih gancang decompression, kalawan tingkat komprési 15-XNUMX% leuwih luhur.

Tambihan: Gagasan anu sami pikeun nyimpen file anu dikomprés dina bentuk gumpalan dina pangkalan data SQLite dilaksanakeun dina 2014 dina arsip sqlar, didamel ku pamekar SQLite salaku percobaan pikeun ngévaluasi efisiensi nyimpen gumpalan dina SQLite. sqlar nganggo zlib pikeun komprési sareng ukuran file sakitar 2% langkung ageung tibatan utilitas ZIP.

sumber: opennet.ru

Tambahkeun komentar