Die erste stabile Version von zlib-ng, einem leistungsstarken Fork von zlib.

Die Version der Bibliothek zlib-ng 2.0 ist verfĂŒgbar, die als erste stabile Veröffentlichung des Projekts gekennzeichnet ist (darauf folgt bereits ein Korrekturrelease 2.0.1). Zlib-ng ist mit zlib auf API-Ebene kompatibel, bietet jedoch zusĂ€tzliche Optimierungen, die aufgrund eines konservativen Ansatzes zur Annahme von Änderungen nicht im offiziellen zlib-Repository aufgenommen wurden. Außerdem wurde eine modernisierte API vorgeschlagen, die auf zlib basiert, aber geĂ€ndert wurde, um das Portieren zu vereinfachen. Der Code des Projekts ist in C geschrieben und steht unter der Zlib-Lizenz.

Tests auf x86_64-Systemen haben gezeigt, dass Zlib-ng beim Komprimieren etwa 4-mal schneller ist als zlib und 2,1-mal schneller als gzip. Beim Dekomprimieren ist Zlib-ng etwa 2,4-mal schneller als zlib und 1,8-mal schneller als gzip. Die signifikante Leistungssteigerung bei der Kompression/Dekompression wurde hauptsÀchlich durch die Nutzung von Vektorinstruktionen wie SSE*, AVX2, VSX und Neon erreicht.

Unter anderem wurde eine Implementierung des Adler32-PrĂŒfziffernalgorithmus hinzugefĂŒgt, die mithilfe von SSSE3-, AVX2-, Neon- und VSX-Instruktionen optimiert wurde, eine CRC32-B-Implementierung basierend auf PCLMULQDQ und ACLE, verbesserte Hash-Tabellen, eine Slide-Hash-Implementierung auf Basis von SSE2, AVX2, Neon und VSX sowie Vergleichsoperationen basierend auf SSE4.2 und AVX2. Außerdem wurden leistungssteigernde Änderungen, die in den Forks von Intel und Cloudflare verwendet werden, integriert. Der Prozess der Buffer-Bearbeitung wurde optimiert. UnterstĂŒtzung fĂŒr die Build-Systeme CMake und NMake wurde hinzugefĂŒgt. FĂŒr Tests wurden Continuous-Integration-Systeme eingesetzt.

Neben den Optimierungen in Zlib-ng sind auch die in den Paketen der Distributionen gesammelten Patches und eine Bereinigung des Codes von Workarounds enthalten, die in zlib verwendet wurden, um alte Compiler und Plattformen zu unterstĂŒtzen, jedoch die Implementierung effizienterer Methoden behindern (z. B. EinschrĂ€nkungen, die zur UnterstĂŒtzung von 16-Bit-Systemen und inkompatiblen ANSI C-Compilern erforderlich sind). Eine Arbeit zur Identifizierung und Behebung von Fehlern, die durch statische Analyse, Fuzz-Testing-Systeme und Werkzeuge zur Erkennung von Problemen mit dem Speicher (AddressSanitizer und MemorySanitizer) erkannt wurden, wurde durchgefĂŒhrt.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster