การเปิดตัว zlib-ng ที่เสถียรครั้งแรก ซึ่งเป็นทางแยกประสิทธิภาพสูงของ zlib

การเปิดตัวไลบรารี zlib-ng 2.0 พร้อมใช้งานแล้วและถูกทำเครื่องหมายว่าเป็นการเปิดตัวที่เสถียรครั้งแรกของโครงการ (ตามด้วยรุ่นแก้ไข 2.0.1) Zlib-ng เข้ากันได้กับ zlib ในระดับ API แต่มีการเพิ่มประสิทธิภาพเพิ่มเติมที่ไม่ได้รับการยอมรับในที่เก็บ zlib อย่างเป็นทางการเนื่องจากแนวทางอนุรักษ์นิยมในการยอมรับการเปลี่ยนแปลง นอกจากนี้ มีการเสนอ API ที่ทันสมัยโดยใช้ zlib แต่ได้รับการแก้ไขเพื่อทำให้การย้ายง่ายขึ้น รหัสโครงการเขียนด้วยภาษา C และเผยแพร่ภายใต้ลิขสิทธิ์ Zlib

การทดสอบที่ดำเนินการบนระบบ x86_64 แสดงให้เห็นว่าเมื่อทำการบีบอัด Zlib-ng จะเร็วกว่า zlib ประมาณ 4 เท่าและเร็วกว่า gzip ประมาณ 2.1 เท่า เมื่อคลายการบีบอัด Zlib-ng จะเร็วกว่า zlib ประมาณ 2.4 เท่า และเร็วกว่า gzip ประมาณ 1.8 เท่า ประสิทธิภาพการบีบอัด/คลายการบีบอัดเพิ่มขึ้นอย่างมีนัยสำคัญ สาเหตุหลักมาจากการใช้คำสั่งเวกเตอร์ SSE*, AVX2, VSX และ Neon

รวมถึงการใช้งานอัลกอริธึมการตรวจสอบ Adler32 เพิ่มเติม ปรับให้เหมาะสมโดยใช้คำสั่ง SSSE3, AVX2, Neon และ VSX, การใช้งาน CRC32-B บนพื้นฐาน PCLMULQDQ และ ACLE, ตารางแฮชที่ได้รับการปรับปรุง, การใช้แฮชแบบสไลด์ตาม SSE2, AVX2, Neon และ VSX, การดำเนินการเปรียบเทียบตาม บน SSE4.2 และ AVX2 องค์ประกอบยังรวมถึงการเปลี่ยนแปลงที่มีจุดมุ่งหมายเพื่อปรับปรุงประสิทธิภาพซึ่งใช้ในส้อมจาก Intel และ Cloudflare กระบวนการทำงานกับบัฟเฟอร์ได้รับการปรับปรุงให้เหมาะสม เพิ่มการสนับสนุนสำหรับระบบการสร้าง CMake และ NMake ระบบบูรณาการอย่างต่อเนื่องใช้สำหรับการทดสอบ

นอกเหนือจากการปรับให้เหมาะสมแล้ว Zlib-ng ยังมีแพตช์ที่สะสมอยู่ในแพ็คเกจการแจกจ่ายและล้างโค้ดจากวิธีแก้ไขปัญหาที่ใช้ใน zlib เพื่อรองรับคอมไพเลอร์และแพลตฟอร์มรุ่นเก่า แต่จะขัดขวางไม่ให้ใช้วิธีการที่มีประสิทธิภาพมากขึ้น (เช่น ข้อจำกัดที่จำเป็นในการสนับสนุน ระบบ 16 บิตและคอมไพเลอร์ที่ไม่ใช่ ANSI C) งานได้ดำเนินการเพื่อระบุและแก้ไขข้อผิดพลาดที่ระบุโดยเครื่องวิเคราะห์แบบคงที่ ระบบทดสอบ fuzzing และเครื่องมือในการระบุปัญหาเมื่อทำงานกับหน่วยความจำ (AddressSanitizer และ MemorySanitizer)

ที่มา: opennet.ru

เพิ่มความคิดเห็น