Истифодаи SQLite ҳамчун контейнер барои бойгонии файлҳо таҷриба кунед

Лоиҳаи Pack кӯшиш кард, ки формати бойгонии файлро дар асоси китобхонаи SQLite ва алгоритми фишурдани ZSTD (Zstandard) эҷод кунад. Прототипи омодашуда, ки бо забони Паскал навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн шудааст, аз бойгониҳои маъмултарин дар суръати эҷоди бойгонӣ бартарӣ дошт, сарфи назар аз он ки кори он бо хондани маълумот, фишурдани он бо китобхонаи libzstd ва иҷрои амалиёти SQL маҳдуд буд. маълумоти фишурдашударо ба файл бо пойгоҳи додаи SQLite илова кунед.

Ҳангоми фишурдани феҳрист бо 81 ҳазор файл, ки ҳаҷми умумии 1.25 ГБ аст, баста аз утилитаи ZIP 112 маротиба тезтар буд ва ин амалиётро дар 1.3 сония дар муқоиса бо 146 сония барои ZIP анҷом дод. Андозаи бойгонӣ барои баста 23% хурдтар буд (194 MB барои Pack ва 253 MB барои ZIP). Барои муқоиса, утилитаи tar бастаро дар 4.7 сония бидуни фишурда ва дар 28.5 сония бо фишурдани gzip анҷом дод, бойгонии RAR санҷишро дар 27.5 сония ва 7z дар 54.2 сония анҷом дод. Андозаи бойгонӣ инҳо буданд: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Қайд карда мешавад, ки аз ҷиҳати суръати кушодан ва дастрасии тасодуфӣ ба файлҳо, Pack низ дар баробари истеъмоли камтари хотираи оперативӣ аз дигар бойгониҳо пеш аст. ZIP: 253 MB, 146 s 7z: 135 MB, 54.2 с тезтар ZIP 2.7 маротиба tar.gz: 214 MB, 28.5 sx 5.1 RAR: 235 MB, 27.5 sx 5.3 tar: 1345 MBs, 4.7 MBs, Pack : 31. SX 194

Дар бораи таъсири кэши файл ба натиҷаҳои санҷиш чизе гуфта нашудааст. Эҳтимол, суръати пасти ZIP аз он вобаста аст, ки санҷишҳо бе назардошти кэшкунии маълумот дар хотира оғоз карда шуданд - санҷиш бо zip бо кэши хунук ва боқимондаи санҷишҳо бо кэши гарм оғоз карда шуд. Дар шароити муқаррарӣ, Zstandard суръати фишурдашавиро нисбат ба zlib 3-5 маротиба тезтар ва декомпрессияро 10 маротиба тезтар бо 15-XNUMX% баландтар нишон медиҳад.

Илова: Идеяи шабеҳи нигоҳ доштани файлҳои фишурда дар шакли блокҳо дар пойгоҳи додаҳои SQLite соли 2014 дар бойгонии sqlar, ки аз ҷониби таҳиягарони SQLite ҳамчун таҷриба барои арзёбии самаранокии нигоҳдории блокҳо дар SQLite сохта шудааст, амалӣ карда шуд. sqlar барои фишурдан zlib-ро истифода мебарад ва андозаи файл аз утилитаи ZIP тақрибан 2% калонтар аст.

Манбаъ: opennet.ru

Илова Эзоҳ