• ออกแบบมาเพื่อแก้ปัญหา คอขวดด้านประสิทธิภาพการอ่าน สำหรับการส่งคอนเทนต์และระบบฝังตัว
  • ปรับให้เหมาะกับโครงสร้างแบบ บีบอัดครั้งเดียวและคลายหลายครั้ง (Read-Many) โดยให้เอนโค้ดเดอร์รับภาระความซับซ้อน และทำให้ดีโค้ดเดอร์มีทรูพุตสูงสุด
  • เมื่อเทียบกับ LZ4 มี ความเร็วในการดีโค้ดเพิ่มขึ้นมากกว่า 40% (Apple Silicon), มากกว่า 20% (Google Axion ซึ่งเป็นชิป ARM สำหรับคลาวด์) และบน x86_64 ก็ เพิ่มขึ้นมากกว่า 5%
  • ถูกรวมเข้ากับ lzbench master branch อย่างเป็นทางการแล้ว ทำให้สามารถตรวจสอบแบบอิสระด้วยมาตรฐานเบนช์มาร์กได้
  • ออกแบบโดยเน้น ประสิทธิภาพเชิงอสมมาตร (Asymmetric Efficiency) เพื่อแก้ปัญหาการต้องเลือกประนีประนอมระหว่าง ความเร็วแบบสมมาตร (LZ4) และ ประสิทธิภาพการบีบอัด (Zstd) ของโคเด็กเดิม
    • เอนโค้ดเดอร์สร้างบิตสตรีมให้เหมาะกับสถาปัตยกรรม CPU (โดยเฉพาะ ARMv8) เพื่อ เพิ่มประสิทธิภาพของ command pipeline และ branch prediction
    • ดีโค้ดเดอร์ถูกทำให้ง่ายขึ้นเพื่อ เพิ่มทรูพุตขณะรันไทม์ให้สูงสุด
  • เบนช์มาร์ก:
    • บน Apple M2, ZXC มี ความเร็วในการดีโค้ดสูงสุด 1.9 เท่า เมื่อเทียบกับ LZ4 และมี ทรูพุตเร็วกว่า 2.7 เท่า เมื่อเทียบกับ Zstd
    • บน Google Axion (ARM Neoverse V2) ก็ยังคงมี ความเร็วในการคลายข้อมูลเร็วกว่า 1.6~2.5 เท่า
    • ในสภาพแวดล้อม x86_64 (AMD EPYC) ก็ทำได้ ประสิทธิภาพการดีโค้ดเร็วขึ้นสูงสุด 2.2 เท่า
  • มี ระดับการบีบอัด 5 ระดับ
    • Level 1–2 (เร็ว): สำหรับแอสเซ็ตแบบเรียลไทม์ เช่น เกม/UI โหลดได้เร็วกว่า LZ4 ราว 40%
    • Level 3–4 (สมดุล): สมดุลระหว่างความเร็วและอัตราการบีบอัด
    • Level 5 (กะทัดรัด): สำหรับเฟิร์มแวร์และระบบฝังตัว เร็วกว่า Zstd และมีอัตราการบีบอัดสูงกว่า LZ4
  • รองรับ API และ CLI
    • CLI: มีคำสั่งสำหรับบีบอัดแอสเซ็ตด้วยตนเองและรันเบนช์มาร์ก (zxc -z, zxc -d, zxc -b)
    • API: มี API แบบ thread-safe อย่างสมบูรณ์ (stateless) ที่เหมาะกับการทำ binding
    • Streaming API: รองรับการประมวลผลไฟล์ขนาดใหญ่แบบขนาน พร้อม ตรวจจับเธรดอัตโนมัติและตรวจสอบ checksum
    • ออกแบบด้วยโครงสร้าง Sans-IO จึงสามารถพัฒนา I/O driver ของแต่ละภาษาได้โดยตรง (อิงจาก zxc_sans_io.h)
  • รับประกันคุณภาพและความเสถียร
    • การทำ fuzzing อย่างต่อเนื่อง (ClusterFuzzLite)
    • การวิเคราะห์แบบสถิต (CPPChecker, Clang)
    • การตรวจสอบแบบไดนามิก (Valgrind, ASan/UBSan)
    • โครงสร้าง API ที่ปลอดภัย โดยกำหนดให้ทุกการทำงานต้อง ระบุความจุบัฟเฟอร์อย่างชัดเจน
  • BSD 3-Clause License

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น