Pack төсөл нь SQLite номын сан болон ZSTD (Zstandard) шахалтын алгоритм дээр суурилсан файл архивлах форматыг үүсгэхийг оролдсон. Pascal хэл дээр бичигдсэн, Apache 2.0 лицензийн дагуу түгээгдсэн бэлтгэсэн прототип нь өгөгдөл унших, libzstd номын сангаар шахах, SQL үйлдлүүд хийх зэргээр хязгаарлагдмал байсан ч архив үүсгэх хурдаараа хамгийн түгээмэл архивчдаас илүү гарсан. SQLite мэдээллийн баазтай файлд шахсан өгөгдлийг нэмэх.
Нийт 81 ГБ хэмжээтэй 1.25 мянган файл бүхий лавлахыг шахах үед багц нь ZIP хэрэгслээс 112 дахин хурдан байсан бөгөөд энэ нь ZIP програмын хувьд 1.3 секундын дотор 146 секундын дотор гүйцэтгэсэн байна. Багцын архивын хэмжээ 23%-иар бага (Багцын хувьд 194 MB, ZIP бол 253 MB). Харьцуулбал, tar хэрэгсэл савлагааг шахахгүйгээр 4.7 секунд, gzip шахалтаар 28.5 секунд, RAR архивлагч 27.5 секунд, 7z програмыг 54.2 секундэд хийж гүйцэтгэсэн. Архивын хэмжээ: tar.gz - 214 MB, RAR - 235 MB, 7z - 135 MB. Пак нь задлах хурд, файл руу санамсаргүй хандах байдлаараа бусад архивлагчдаас түрүүлж, RAM бага зарцуулдаг болохыг тэмдэглэжээ. 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, 31 MBs, багц. SX 194
Туршилтын үр дүнд файлын кэш ямар нөлөө үзүүлэх талаар дурдаагүй байна. ZIP-ийн бага хурд нь санах ойд өгөгдлийг кэшлэхгүйгээр туршилтыг эхлүүлсэн дараалалтай холбоотой байж болох юм - zip-тай тестийг хүйтэн кэшээр, үлдсэн тестүүдийг дулаан кэшээр эхлүүлсэн. Хэвийн нөхцөлд Zstandard нь zlib-ээс 3-5 дахин хурдан шахалтын хурд, задралаас 10 дахин хурдан, шахалтын түвшин 15-XNUMX%-иар өндөр байдаг.
Нэмэлт: SQLite мэдээллийн санд шахагдсан файлуудыг blob хэлбэрээр хадгалах ижил төстэй санааг 2014 онд SQLite хөгжүүлэгчид SQLite-д blob хадгалах үр ашгийг үнэлэх туршилт болгон бүтээсэн sqlar архивт хэрэгжүүлсэн. sqlar нь шахалтанд zlib ашигладаг бөгөөд файлын хэмжээ нь ZIP хэрэгслээс 2%-иар том байна.
Эх сурвалж: opennet.ru
