ΠŸΡŠΡ€Π²ΠΎ стабилно ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° zlib-ng, високоСфСктивно Ρ€Π°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π½Π° zlib

Налична Π΅ вСрсия Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° zlib-ng 2.0, която Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²Π°Ρ‚Π° стабилна вСрсия Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‰Π° вСрсия 2.0.1 Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° слСд Ρ‚ΠΎΠ²Π°). Zlib-ng Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ със zlib Π½Π° Π½ΠΈΠ²ΠΎ API, Π½ΠΎ прСдоставя Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° zlib ΠΏΠΎΡ€Π°Π΄ΠΈ нСговия консСрвативСн ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π° Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€Π°Π½ API, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° zlib, Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½, Π·Π° Π΄Π° опрости прСнасянСто. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Zlib.

ВСстовСтС, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ Π½Π° систСми x86_64, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚, Ρ‡Π΅ Zlib-ng Π΅ ΠΎΠΊΠΎΠ»ΠΎ 4 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΎΡ‚ zlib ΠΈ 2.1 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΎΡ‚ gzip ΠΏΡ€ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° компрСсиранС. ΠŸΡ€ΠΈ дСкомпрСсиранС Zlib-ng Π΅ ΠΎΠΊΠΎΠ»ΠΎ 2.4 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΎΡ‚ zlib ΠΈ 1.8 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΎΡ‚ gzip. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността Π½Π° компрСсия / дСкомпрСсия бСшС постигнато Π³Π»Π°Π²Π½ΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ инструкции SSE *, AVX2, VSX ΠΈ Neon.

Π”ΠΎΠ±Π°Π²Π΅Π½Π° рСализация Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° сума Adler32, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ с инструкции SSSE3, AVX2, Neon ΠΈ VSX, рСализация Π½Π° CRC32-B, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° PCLMULQDQ ΠΈ ACLE, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ Ρ…Π΅Ρˆ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, рСализация Π½Π° Slide Ρ…Π΅Ρˆ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° SSE2, AVX2, Neon ΠΈ VSX, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° сравнСниС, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° SSE4.2 .2 ΠΈ AVXXNUMX. Π’ΠΎΠΉ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° подобряванС Π½Π° производитСлността, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ във Ρ„ΠΎΡ€ΠΊΠΎΠ²Π΅ ΠΎΡ‚ Intel ΠΈ Cloudflare. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π±ΡƒΡ„Π΅Ρ€ΠΈ. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° систСми Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° CMake ΠΈ NMake. Π—Π° тСстванС сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ систСми Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция.

Π’ допълнСниС към ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅, Zlib-ng ΡΡŠΡ‰ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅, Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π·Π° разпространСниС, ΠΈ почиства ΠΊΠΎΠ΄Π° ΠΎΡ‚ заобикалящи Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² zlib, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΠΎ-стари ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, Π½ΠΎ Π²ΡŠΠ·ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ограничСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° 16-Π±ΠΈΡ‚ΠΎΠ²ΠΈ систСми ΠΈ Π½Π΅-ANSI C ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ). Π‘Π΅ΡˆΠ΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ, систСми Π·Π° тСстванС Π½Π° Ρ€Π°Π·ΠΌΠΈΠ²Π°Π½Π΅ ΠΈ инструмСнти Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚ (AddressSanitizer ΠΈ MemorySanitizer).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€