Zlib-ng 2.0 teekond vabastamine, mis on mĂ€rgitud projekti esimese stabiilse vĂ€ljaandena (jĂ€rgneb sellele juba parandav vĂ€ljaanne 2.0.1). Zlib-ng on API tasemel ĂŒhilduv zlib-iga, kuid pakub tĂ€iendavaid optimeerimisi, mis ei ole ametlikku zlib'i hoidlat vastu vĂ”etud konservatiivse lĂ€henemise tĂ”ttu muudatuste vastuvĂ”tmiseks. Ăheskoos pakutakse moderniseeritud API-d, mis pĂ”hineb zlib-il, kuid on muutunud lihtsamaks portimiseks. Projekti kood on kirjutatud C keeles ja levitatakse Zlib litsentsi alusel.
X86_64 sĂŒsteemidel lĂ€bi viidud testid nĂ€itasid, et Zlib-ng kompressiooni teostamisel on umbes 4 korda kiirem kui zlib ning 2.1 korda kiirem kui gzip. Dekompressioonis on Zlib-ng umbes 2.4 korda kiirem zlib-ist ja 1.8 korda kiirem gzip-ist. Oluliste kahemĂ”ttelisuse / dekompressiooni sooritusvĂ”ime tĂ”usude saavutamine on peamiselt vĂ”imalik tĂ€nu vektoriliste instruktsioonide kasutamisele nagu SSE*, AVX2, VSX ja Neon.
Lisanud on Adler32 kontrollsumma algoritmi rakenduse, mis on optimeeritud SSSE3, AVX2, Neon ja VSX instruktsioonide abil; CRC32-B rakenduse PCLMULQDQ ja ACLE alusel; tĂ€iustatud hash-tabelid; Slide hashi rakenduse SSE2, AVX2, Neon ja VSX alusel, ning SSE4.2 ja AVX2 alusel vĂ”rdlusoperatsioonid. Samuti on kaasatud sooritusvĂ”ime parandamise muudatused, mida on kasutatud Intel'i ja Cloudflare'i harude puhul. Buffereid on optimeeritud. CMake ja NMake ehitussĂŒsteemide tugi on lisatud. Tootearenduse testimiseks on kasutatud pideva integreerimise sĂŒsteeme.
Zlib-ng sisaldab ka distributsioonipakettides akumuleeritud plaastrite, elik paranduste, integreerimist ning on puhastatud koodist, mis sisaldas möödavĂ”tteid, mis olid vajalikud zlib'i toetamiseks vanade kompilaatorite ja platvormide puhul, kuid takistavad tĂ”husamate meetodite rakendamist (nt piirangud, mis on vajalikud 16-bitiste sĂŒsteemide ja ANSI C mitteĂŒhilduvate kompilaatorite toetamiseks). TĂ”rgete tuvastamiseks ja parandamiseks on tehtud tööd, mida on vĂ€lja toonud staatilised analĂŒsaatorid, fuzzing-testimise sĂŒsteemid ning mĂ€lu keerukuse probleemide tuvastamise tööriistad (AddressSanitizer ja MemorySanitizer).
Allikas: opennet.ru
