Zazpi hilabeteko garapenaren ondoren, framework-aren 0.2.0 bertsioa kaleratu zen. OpenZL, datu-konpresore galerarik gabekoak sortzeko diseinatua.
Esparruak oinarrizko liburutegi bat eta hizkuntzan deskribatutako konpresore espezializatuak sortzeko tresnek osatzen dute. SDDL.
Konpresore dedikatu on bat sortzeko bi urrats daude:
- Datuen analisia egitura ateratzeko.
- Konpresio ona lortzeko ondoriozko egitura ustiatzen duten atzeko konpresore onak erabiltzea.
OpenZL-k bi etapetarako tresnak eskaintzen ditu.
Proiektua C eta C++ hizkuntzan idatzita dago eta BSD lizentziapean banatzen da.
Aldaketa garrantzitsuak
SDDL2
SDDL erabat berridatzi zen hutsetik bere jatorrizko diseinu helburuak lortzeko. Jatorrizko demoa exekuzio-ingurune sinplifikatua zen bitartean, SDDL2 konpiladore osoa da: parserrak datuak analizatzaile semantikoari bidaltzen dizkio, eta honek, aldi berean, sintaxi-zuhaitz abstraktu motatua (AST) bidaltzen dio optimizatzaileari, eta optimizatzaileak kode-sortzailea kontrolatzen du, eta honek makina birtualaren bytecodea sortzen du.
Emaitza nagusia berehalako analisia da. Erregistro baten kokapena parametroak eta konstanteak soilik erabiliz guztiz zehaztu daitekeenean, motorrak zuzenean edozein eremutara jauzi egiten du aurreko byteak eskaneatu gabe, kopiarik gabeko sarbidea eta hainbat GB/s-ko errendimendua ahalbidetuz.
Hizkuntza bera bere tresna multzoarekin batera eboluzionatu du. Orain baldintzapeko adierazpenetarako when klausulak, erregistro parametrizatuak eta anonimoak, erregistro eremuko kideetarako sarbidea eta bit mailako eta operadore logikoak onartzen ditu.
Garatzaileen aldetik, analisi semantikoaren urratsak erreferentzia definitu gabeak, mota desadostasunak eta aritate erroreak identifikatzen ditu orain konpilazio garaian —iturburu-kodearen kokapenarekin—, exekuzio garaian baino, eta .sddl fitxategien sintaxi nabarmentzeko VS Code luzapena kaleratu da.
LZ kodek berria barneratua
OpenZL-k bere LZ kodeka dauka orain, ZL_GRAPH_LZ gisa irudikatuta, baita zli utilitatean konpresio sekuentzialeko profil bat ere. Kodekaren lanean jarraitzen dugu, bere funtzio multzoa zabalduz eta sarrerako datu txikiak prozesatzean errendimendua hobetuz. Gaur egun, zstd 1. mailako funtzionalitate baliokidea onartzen du, 64 KB-ko konpresio leiho batekin.
OpenZL-k LZ hodiaren etapa bakoitza abiadura hobetzeko birdiseinatzea ahalbidetzen du. Bere grafikoen arkitekturak entropia kodeketa etapak konbinatzea ere ahalbidetzen du, erabilera kasu guztietarako egokia den hodi bakarra erabili beharrean. Hainbat etapa eragiketa bakarrean konbina daitezke prozesatzeko abiadura hobetzeko. Horri esker, OpenZL-k % 10eko konpresio azkarragoa eta % 70eko deskonpresio azkarragoa lor dezake Silesia corpuseko Z estandarraren 1. mailarekin alderatuta. gure probak:
| Konpresorea | Konpresio ratioa | Konpresio-abiadura | Deskonpresio-abiadura |
|---|---|---|---|
| OpenZL LZ 1. maila | 2.74 | 466 MB / s | 2288 MB / s |
| Zstd 1. maila 64K leiho-tamainarekin | 2.74 | 419 MB / s | 1254 MB / s |
| Zstd 1. maila | 2.89 | 424 MB / s | 1345 MB / s |
Sarrerako datu oso handien laguntza
zli-k sarrerako datu erraldoiak prozesatzea onartzen du orain (gigabyte batzuetako tamainakoak). Konpresioaren aurretik, datu horiek automatikoki banatzen dira tamaina egokiko zatitan (lehenespenez 16 MB inguru), memoriaren erabilera mugatuz, datuen lokaltasuna hobetuz eta prozesamendu paraleloa ahalbidetuz. SDDL2-k antzeko zatiketa automatiko funtzio bat ezartzen du eskemekin lan egitean. Segmentu berriak sortu edo eguneratu ziren prozesuan —CSV, Parquet eta datu numeriko estandarrentzat— eta segmentu guztiak serializagarriak eta konfiguragarriak dira orain, beraz, aukeratutako diseinua konpresorean gorde eta geroago berrerabili daiteke.
Hau gardenki aplikatzen da konpresioan zehar. Kontuan izan prestakuntza-hodia desberdina dela eta ez dela aldatzen, beraz, ez dago sarrera-datu erraldoiak prestakuntza-material gisa onartzeko diseinatuta.
Hobekuntzak lineako grafiko bistaratzailean (saiatu)
Bistaratzaileak konpresio eta deskonpresio arrastoak hasieratik amaierara ezagutzen ditu orain.
Errekaren aurrebista panelak ertz bakoitzean zehar doazen byteak ikusteko aukera ematen dizu, eta mozketa kontrolak erreka handiak ere erraz lan egiteko aukera ematen du.
Ezarpenen panelak bistaratze-aukera guztiak leku bakarrean biltzen ditu, eta laster-tekla multzo oso batek (norabide-nabigazioa, zeharkatze ordenatua, zabaltzea eta tolestea, eta nodoen hautaketa) tresnarekin eroso lan egiteko aukera ematen dizu sagurik gabe.
Trazak bertsionatuta daude orain, blokeetan oinarritutako konpresioa behar bezala bistaratzen da eta zli-k azkenean bere trazak sortu ditzake --trace eta --trace-streams-dir bandera berriak erabiliz.
Nahastea
- Hainbat kodek gehitu dira katalogora. Partition eta bitpack kodekek orain deskodetzaile bateratu bat erabiltzen dute. Bitsplit kodekak koma mugikorrean kodetzaile eta deskodetzaile dedikatuak ditu orain fp16, fp32, fp64 eta bf16 formatuetarako, azelerazio espezializatuarekin. Barrutiaren araberako zatiketa (split_byrange), luzera multiplexor bat, sentinel kodeka, lz4 grafiko bat eta laguntzaile funtzio txikiak gehitu dira, hala nola tryParseInt eta splitByParam.
- APIa erraztu egin da.
- Hobetutako fuzz probak.
- Plataforma gehiagorako eraikuntza eta paketatze prozesua hobetu da.
Iturria: linux.org.ru
