Yekutanga yakagadzikana kuburitswa kwezlib-ng, yakakwira performance forogo yezlib

Kuburitswa kweiyo zlib-ng 2.0 raibhurari iripo uye inomisikidzwa seyekutanga yakagadzikana kuburitswa kweprojekiti (inoteverwa neyakagadziriswa kuburitswa 2.0.1). Zlib-ng inowirirana ne zlib pa API level, asi inopa mamwe ma optimizations ayo asingagamuchirwi mune yepamutemo zlib repository nekuda kwenzira inochengetedza yekugamuchira shanduko. Pamusoro pezvo, API yemazuva ano inokurudzirwa, yakavakirwa pazlib, asi yakagadziridzwa kuti irerutsa kufambisa. Iyo kodhi yeprojekiti yakanyorwa muC uye yakagoverwa pasi peZlib rezinesi.

Miedzo yakaitwa pa x86_64 masisitimu yakaratidza kuti pakuita mashandiro ekumanikidza, Zlib-ng inomhanya kanokwana ka4 pane zlib uye 2.1 nguva nekukurumidza kupfuura gzip. Pakudzikisa, Zlib-ng inenge 2.4 nguva nekukurumidza kupfuura zlib uye 1.8 nguva nekukurumidza kupfuura gzip. Kuwedzera kwakakosha kwekumanikidza / decompression kuita kwakawanikwa zvakanyanya nekuda kwekushandiswa kweiyo vector mirayiridzo SSE *, AVX2, VSX uye Neon.

Kusanganisira kuwedzera kwekuita kweAdler32 checksum algorithm, yakagadziridzwa uchishandisa SSSE3, AVX2, Neon uye VSX mirairo, CRC32-B kuitiswa kwakavakirwa paPCLMULQDQ uye ACLE, yakagadziridzwa matafura ehashi, Slide hashi kuitiswa kwakavakirwa paSSE2, AVX2, Neon uye VSX,Kuenzanisa mashandiro akavakirwa. paSSE4.2 uye AVX2. Iyo yekuumbwa inosanganisirawo shanduko dzakanangana nekuvandudza mashandiro, anoshandiswa mumaforogo kubva kuIntel uye Cloudflare. Maitiro ekushanda nemabuffers akagadziridzwa. Yakawedzerwa rutsigiro rweCMake uye NMake kuvaka masisitimu. Inoenderera mberi yekubatanidza masisitimu anoshandiswa pakuyedza.

Mukuwedzera kune optimizations, Zlib-ng inosanganisirawo zvigamba zvakaunganidzwa mumapaketi ekugovera uye kuchenesa kodhi kubva kumabasa anoshandiswa muzlib kutsigira vagadziri vekare uye mapuratifomu, asi izvo zvinodzivirira kuisirwa nzira dzinoshanda (semuenzaniso, zvirambidzo zvinodiwa kutsigira. 16-bit masisitimu uye asiri-ANSI C compilers). Basa rakaitwa kuona nekugadzirisa zvikanganiso zvakaonekwa nevanoongorora static, fuzzing yekuyedza masisitimu, uye maturusi ekuona matambudziko kana uchishanda nendangariro (AddressSanitizer uye MemorySanitizer).

Source: opennet.ru

Voeg