Bi karanîna SQLite wekî konteynir ji bo arşîvkirina pelan ceribandin

Projeya Pack hewl da ku li ser bingeha pirtûkxaneya SQLite û algorîtmaya berhevkirinê ya ZSTD (Zstandard) formatek arşîvkirina pelan biafirîne. Prototîpa amadekirî, ku bi Pascal hatî nivîsandin û di bin lîsansa Apache 2.0 de hatî belav kirin, di leza afirandina arşîvan de ji arşîvên herî gelemperî bihurî, tevî vê yekê ku karê wê bi xwendina daneyan re sînordar bû, wê bi pirtûkxaneya libzstd re berhev bike û karûbarên SQL pêk bîne. Daneyên pêçandî li pelek bi databasek SQLite zêde bikin.

Dema ku pelrêkek bi 81 hezar pelên bi mezinahiya giştî 1.25 GB tê komkirin, paket 112 qat ji kargêriya ZIP zûtir bû, ku operasyon di 1.3 çirkeyan de li hember 146 çirkeyan ji bo ZIP qedand. Mezinahiya arşîvê ji bo pakêtê 23% piçûktir bû (194 MB ji bo Pack û 253 MB ji bo ZIP). Ji bo berhevdanê, kargêriya tar pakkirinê di 4.7 çirkeyan de bê çewisandin û di 28.5 çirkeyan de bi kompresyona gzip temam kir, arşîvana RAR di 27.5 çirkeyan de, û 7z di 54.2 çirkeyan de ceribandin. Mezinahiya arşîvê ev bûn: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Tê destnîşan kirin ku di warê leza vekêşanê û gihîştina rasthatî ya pelan de, Pack di heman demê de li pêş arşîvên din e, di heman demê de RAM-a hindik dixwe. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s zûtir ZIP 2.7 car tar.gz: 214 MB, 28.5 sx 5.1 RAR: 235 MB, 27.5 sx 5.3 MB 1345 tar: 4.7 SX 31

Li ser bandora cache pelê li ser encamên testê tune. Belkî, leza hindik a ZIP-ê ji ber rêza ku ceribandin bêyî guhdana vegirtina daneyê di bîranînê de hatine destpêkirin - ceribandina bi zip bi kaşek sar, û yên mayî jî bi cache germ hate destpêkirin. Di bin şert û mercên normal de, Zstandard 3-5 carî leza çewisandinê ji zlib û 10 qat dekompresyonê zûtir nîşan dide, bi 15-XNUMX% astên kompresyonê bilindtir e.

Zêdebûn: Nêrînek bi vî rengî ya hilanîna pelên pêçandî di forma bloyan de di databasek SQLite de di sala 2014-an de di arşîva sqlar de, ku ji hêla pêşdebirên SQLite ve hatî çêkirin wekî ceribandinek ji bo nirxandina kargêriya hilanîna bloyan di SQLite de hate bicîh kirin. sqlar zlib ji bo berhevkirinê bikar tîne û mezinahiya pelê bi qasî 2% ji kargêriya ZIP mezintir e.

Source: opennet.ru

Add a comment