Փորձ՝ օգտագործելով SQLite-ը որպես ֆայլերի արխիվացման կոնտեյներ

Pack նախագիծը փորձել է ստեղծել ֆայլերի արխիվացման ձևաչափ՝ հիմնված SQLite գրադարանի և ZSTD (Zstandard) սեղմման ալգորիթմի վրա: Պատրաստված նախատիպը, որը գրվել է Pascal-ով և տարածվել է Apache 2.0 լիցենզիայի ներքո, գերազանցել է ամենատարածված արխիվներին արխիվների ստեղծման արագությամբ, չնայած այն հանգամանքին, որ նրա աշխատանքը սահմանափակվում էր տվյալների ընթերցմամբ, libzstd գրադարանով սեղմելով և SQL գործողություններ կատարելով: ավելացնել սեղմված տվյալներ SQLite տվյալների բազայով ֆայլին:

81 ԳԲ ընդհանուր ծավալով 1.25 հազար ֆայլով գրացուցակը սեղմելիս փաթեթը 112 անգամ ավելի արագ էր, քան ZIP կոմունալը, որն ավարտում էր գործողությունը 1.3 վայրկյանում՝ ZIP-ի 146 վայրկյանում: Փաթեթի արխիվի չափը 23%-ով փոքր էր (194 ՄԲ փաթեթի համար և 253 ՄԲ՝ ZIP-ի համար): Համեմատության համար նշենք, որ tar utility-ն ավարտեց փաթեթավորումը 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 MB tar՝ 1345 MB 4.7 SX 31

Թեստի արդյունքների վրա ֆայլի քեշի ազդեցության մասին խոսք չկա: Հավանաբար, ZIP-ի ցածր արագությունը պայմանավորված է այն հերթականությամբ, որով թեստերը գործարկվել են՝ հաշվի չառնելով տվյալների քեշավորումը հիշողության մեջ. zip-ով թեստը գործարկվել է սառը քեշով, իսկ մնացած թեստերը՝ տաք քեշով: Նորմալ պայմաններում Zstandard-ը ցուցադրում է 3-5 անգամ ավելի արագ սեղմման արագություն, քան zlib-ը և 10 անգամ ավելի արագ ապակոմպրեսիա՝ 15-XNUMX% ավելի բարձր սեղմման մակարդակով:

Հավելում. SQLite տվյալների բազայում բլբերների տեսքով սեղմված ֆայլերը պահելու համանման գաղափարն իրականացվել է 2014 թվականին sqlar արխիվերում, որը ստեղծվել է SQLite մշակողների կողմից որպես փորձ՝ գնահատելու բլբերը SQLite-ում բլբերը պահելու արդյունավետությունը: sqlar-ը սեղմման համար օգտագործում է zlib, և ֆայլի չափը մոտ 2%-ով ավելի մեծ է, քան ZIP կոմունալը:

Source: opennet.ru

Добавить комментарий