Rilis stabil pisanan saka zlib-ng, garpu kinerja dhuwur saka zlib

Rilis saka perpustakaan zlib-ng 2.0 kasedhiya lan ditandhani minangka release stabil pisanan saka project (diterusake dening release mbenakake 2.0.1). Zlib-ng kompatibel karo zlib ing tingkat API, nanging nyedhiyakake optimasi tambahan sing ora ditampa ing repositori zlib resmi amarga pendekatan konservatif kanggo nampa owah-owahan. Kajaba iku, API modern diusulake, adhedhasar zlib, nanging diowahi kanggo nyederhanakake porting. Kode proyek ditulis ing C lan disebarake miturut lisensi Zlib.

Tes sing ditindakake ing sistem x86_64 nuduhake yen nalika nindakake operasi kompresi, Zlib-ng kira-kira 4 kaping luwih cepet tinimbang zlib lan 2.1 kaping luwih cepet tinimbang gzip. Nalika decompressing, Zlib-ng kira-kira 2.4 kaping luwih cepet saka zlib lan 1.8 kaping luwih cepet saka gzip. Tambah pinunjul ing kinerja komprèsi / decompression digayuh utamané amarga nggunakake instruksi vektor SSE *, AVX2, VSX lan Neon.

Kalebu implementasi tambahan saka algoritma checksum Adler32, dioptimalake nggunakake instruksi SSSE3, AVX2, Neon lan VSX, implementasi CRC32-B adhedhasar PCLMULQDQ lan ACLE, tabel hash sing luwih apik, Implementasi hash geser adhedhasar SSE2, AVX2, Neon lan VSX , Operasi perbandingan adhedhasar ing SSE4.2 lan AVX2. Komposisi kasebut uga kalebu owah-owahan sing ditujokake kanggo ningkatake kinerja, digunakake ing garpu saka Intel lan Cloudflare. Proses nggarap buffer wis dioptimalake. Dhukungan tambahan kanggo sistem mbangun CMake lan NMake. Sistem integrasi terus-terusan digunakake kanggo tes.

Saliyane optimasi, Zlib-ng uga kalebu patch sing wis diklumpukake ing paket distribusi lan ngresiki kode saka workarounds sing digunakake ing zlib kanggo ndhukung kompiler lan platform lawas, nanging sing nyegah implementasine cara sing luwih efisien (contone, watesan sing dibutuhake kanggo ndhukung. sistem 16-bit lan kompiler non-ANSI C). Pakaryan wis ditindakake kanggo ngenali lan mbenerake kesalahan sing diidentifikasi dening analisa statis, sistem tes fuzzing, lan alat kanggo ngenali masalah nalika nggarap memori (AddressSanitizer lan MemorySanitizer).

Source: opennet.ru

Add a comment