Pruvate l'usu di SQLite cum'è un containeru per archivià i fugliali

U prughjettu di u Pack hà pruvatu à creà un furmatu di archiviu di schedari basatu nantu à a biblioteca SQLite è l'algoritmu di compressione ZSTD (Zstandard). U prototipu preparatu, scrittu in Pascal è distribuitu sottu a licenza Apache 2.0, superò l'archivi più cumuni in a rapidità di creazione d'archivi, malgradu u fattu chì u so travagliu era limitatu à leghje e dati, cumpressione cù a libreria libzstd è eseguisce operazioni SQL. aghjunghje dati cumpressi à un schedariu cù una basa di dati SQLite.

Quandu compressendu un repertoriu cù 81 mila fugliali cù una dimensione tutale di 1.25 GB, u pacchettu era 112 volte più veloce di l'utilità ZIP, cumpletendu l'operazione in 1.3 seconde versus 146 seconde per ZIP. A dimensione di l'archiviu per u pacchettu era 23% più chjucu (194 MB per Pack è 253 MB per ZIP). Per paragunà, l'utility tar hà cumpletu l'imballu in 4.7 seconde senza cumpressione è in 28.5 seconde cù compressione gzip, l'archiviu RAR hà cumpletu a prova in 27.5 seconde, è 7z in 54.2 seconde. E dimensioni d'archivi eranu: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Hè nutatu chì in termini di rapidità di unpacking è accessu aleatoriu à i schedari, Pack hè ancu davanti à l'altri archivisti, mentre chì cunsuma menu RAM. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 s più veloce ZIP 2.7 volte tar.gz: 214 MB, 28.5 sx 5.1 RAR: 235 MB, 27.5 sx 5.3 tar: 1345 MB, 4.7 MB: 31 x 194 MB SX 1.3

Ùn ci hè micca menzione di l'effettu di u cache di u schedariu nantu à i risultati di a prova. Probabilmente, a bassa velocità di ZIP hè dovuta à l'ordine in quale i testi sò stati lanciati senza riguardu à a cache di dati in memoria - a prova cù zip hè stata lanciata cù un cache friddu, è u restu di e teste cù un cache caldu. In cundizioni normali, Zstandard mostra una velocità di compressione 3-5 volte più veloce di zlib è una decompressione 10 volte più veloce, cù livelli di compressione 15-XNUMX% più alti.

Addition: Una idea simili di almacenà i fugliali cumpressi in forma di blobs in una basa di dati SQLite hè stata implementata in 2014 in l'archiver sqlar, creatu da i sviluppatori SQLite cum'è un esperimentu per valutà l'efficienza di almacenà blobs in SQLite. sqlar usa zlib per a compressione è a dimensione di u schedariu hè circa 2% più grande di l'utilità ZIP.

Source: opennet.ru

Add a comment