Yetti oylik ishlab chiqishdan so'ng, freymvorkning 0.2.0 versiyasi chiqarildi. OpenZL, yo'qotishsiz ma'lumotlar kompressorlarini yaratish uchun mo'ljallangan.
Ushbu tizim bazaviy kutubxona va tilda tasvirlangan ixtisoslashtirilgan kompressorlarni yaratish uchun vositalardan iborat. SDDL.
Yaxshi maxsus kompressorni yaratishning ikki bosqichi mavjud:
- Strukturani ajratib olish uchun ma'lumotlarni tahlil qilish.
- Yaxshi siqishni ta'minlash uchun hosil bo'lgan strukturadan foydalanadigan yaxshi orqa kompressorlardan foydalanish.
OpenZL ikkala bosqich uchun ham vositalarni taqdim etadi.
Loyiha C va C++ tillarida yozilgan va BSD litsenziyasi ostida tarqatiladi.
Asosiy o'zgarishlar
SDDL2
SDDL asl dizayn maqsadlariga erishish uchun butunlay noldan qayta yozilgan. Dastlabki demo soddalashtirilgan ish vaqti muhiti bo'lsa-da, SDDL2 to'liq kompilyator hisoblanadi: tahlil qiluvchi ma'lumotlarni semantik analizatorga uzatadi, u esa o'z navbatida optimizatorga yozilgan mavhum sintaksis daraxtini (AST) uzatadi va optimizator virtual mashina baytekodini yaratadigan kod generatorini boshqaradi.
Asosiy natija - bu tezkor tahlil. Yozuvning joylashuvini faqat parametrlar va konstantalar yordamida to'liq aniqlash mumkin bo'lganda, dvigatel oldingi baytlarni skanerlamasdan to'g'ridan-to'g'ri istalgan maydonga o'tadi, bu esa nusxa ko'chirmasdan kirish va bir necha GB/s o'tkazish qobiliyatini ta'minlaydi.
Tilning o'zi o'zining asboblar to'plami bilan birga rivojlandi. Endi u shartli operatorlar, parametrlangan va anonim yozuvlar, yozuv maydoni a'zolariga kirish va bit va mantiqiy operatorlar uchun qachon bandlarini qo'llab-quvvatlaydi.
Dasturchi tomonida, semantik tahlil bosqichi endi aniqlanmagan havolalarni, turdagi nomuvofiqliklarni va aritmiya xatolarini ish vaqtida emas, balki kompilyatsiya vaqtida — manba kodi joylashuvi bilan aniqlaydi va .sddl fayllarini sintaksisni ajratib ko'rsatish uchun VS Code kengaytmasi chiqarildi.
Yangi o'rnatilgan LZ kodek
OpenZL endi o'zining ZL_GRAPH_LZ sifatida ifodalangan LZ kodekini, shuningdek, zli yordamchi dasturida ketma-ket siqish profilini o'z ichiga oladi. Kodek ustida ishlar davom etmoqda, uning funksiyalar to'plamini kengaytirmoqda va kichik kirish ma'lumotlarini qayta ishlashda ishlashni yaxshilaydi. Hozirda u 64 KB siqish oynasi bilan zstd 1-darajali funksiyani qo'llab-quvvatlaydi.
OpenZL LZ quvur liniyasining har bir bosqichini tezlik uchun qayta loyihalash imkonini beradi. Uning grafik arxitekturasi barcha foydalanish holatlari uchun bir xil darajada mos keladigan bitta quvur liniyasidan foydalanish o'rniga entropiya kodlash bosqichlarini birlashtirishga imkon beradi. Keyin ishlov berish tezligini oshirish uchun bir nechta bosqichlarni bitta operatsiyaga birlashtirish mumkin. Bu OpenZLga Silesia korpusidagi Zstandard 1-darajali bilan solishtirganda 10% tezroq siqishni va 70% tezroq dekompressiyaga erishish imkonini beradi. bizning sinovlarimiz:
| Kompressor | Siquv darajasi | Siqish tezligi | Dekompressiya tezligi |
|---|---|---|---|
| OpenZL LZ 1-daraja | 2.74 | 466 MB / s | 2288 MB / s |
| 64K oyna o'lchamiga ega Zstd 1-darajali | 2.74 | 419 MB / s | 1254 MB / s |
| Zstd 1-daraja | 2.89 | 424 MB / s | 1345 MB / s |
Juda katta kirish ma'lumotlarini qo'llab-quvvatlash
zli endi katta hajmdagi kirish ma'lumotlarini (bir necha gigabayt hajmida) qayta ishlashni qo'llab-quvvatlaydi. Siqishdan oldin, bunday ma'lumotlar endi avtomatik ravishda boshqariladigan o'lchamdagi bo'laklarga bo'linadi (standart holatda taxminan 16 MB), bu xotiradan foydalanishni cheklaydi, ma'lumotlar joylashuvini yaxshilaydi va parallel qayta ishlashni ta'minlaydi. SDDL2 sxema bilan ishlashda shunga o'xshash avtomatik bo'laklash xususiyatini amalga oshiradi. Jarayonda yangi segmenterlar yaratildi yoki yangilandi - CSV, Parket va standart raqamli ma'lumotlar uchun - va barcha segmenterlar endi seriyalashtirilishi va sozlanishi mumkin, shuning uchun tanlangan maket kompressorda saqlanishi va keyinroq qayta ishlatilishi mumkin.
Bu siqish paytida shaffof tarzda qo'llaniladi. Shuni e'tiborga olingki, o'quv quvuri boshqacha va unga ta'sir qilmaydi, shuning uchun u ulkan kirish ma'lumotlarini o'quv materiali sifatida qabul qilish uchun mo'ljallanmagan.
Onlayn grafik vizualizatoridagi yaxshilanishlar (sinab ko'ring)
Vizualizator endi siqishni va dekompressiya izlarini boshidan oxirigacha taniydi.
Oqimni oldindan ko'rish paneli sizga baytlarning har bir chekka bo'ylab oqayotganini ko'rish imkonini beradi va qirqish boshqaruv elementlari hatto katta oqimlar bilan ham ishlashni osonlashtiradi.
Sozlamalar paneli barcha displey parametrlarini bir joyda birlashtiradi va tezkor tugmalarning to'liq to'plami - yo'nalishli navigatsiya, tartibli aylanish, kengaytirish va yig'ish hamda tugunni tanlash - sizga sichqonchasiz vosita bilan qulay ishlash imkonini beradi.
Trasslar endi versiyalashtirildi, blok asosidagi siqish to'g'ri ko'rsatildi va zli nihoyat yangi --trace va --trace-streams-dir bayroqlari yordamida o'z trasslarini yaratishi mumkin.
Разное
- Katalogga bir nechta kodeklar qo'shildi. Partition va bitpack kodeklari endi birlashtirilgan dekoderdan foydalanadi. Suzuvchi nuqtali bitsplit kodek endi fp16, fp32, fp64 va bf16 formatlari uchun maxsus tezlashtirishga ega maxsus enkoderlar va dekoderlarni o'z ichiga oladi. Diapazonga bog'liq bo'linish (split_byrange), uzunlik multipleksori, sentinel kodek, lz4 grafigi va tryParseInt va splitByParam kabi kichik yordamchi funktsiyalar qo'shildi.
- API soddalashtirildi.
- Yaxshilangan fuzz sinovi.
- Ko'proq platformalar uchun takomillashtirilgan yig'ish va qadoqlash jarayoni.
Manba: linux.org.ru
