8P by xguru 2시간전 | ★ favorite | 댓글과 토론
  • 콘텐츠 전송과 임베디드 시스템의 읽기 성능 병목을 해결하기 위해 설계
  • 한 번 압축하고 여러 번 해제(Read-Many) 하는 구조에 맞춰, 인코더가 복잡도를 담당하고 디코더는 최대 처리량을 확보
  • LZ4 대비 디코딩 속도 40% 이상 향상(애플 실리콘) , 20% 이상 향상 (클라우드용 ARM칩인 Google Axion) , x86_64에서도 5% 이상 향상
  • lzbench 마스터 브랜치에 공식 통합되어, 이제 표준 벤치마크로 독립 검증 가능
  • 기존 코덱의 대칭 속도(LZ4)압축 효율(Zstd) 간 절충 문제를 해결하는 비대칭 효율성(Asymmetric Efficiency) 중심 설계
    • 인코더는 명령 파이프라인 및 분기 예측 최적화를 위해 CPU 구조(특히 ARMv8)에 맞춘 비트스트림 생성
    • 디코더는 단순화되어 런타임 처리량 극대화
  • 벤치마크:
    • Apple M2 기준, ZXC는 LZ4 대비 최대 1.9배 빠른 디코딩, Zstd 대비 2.7배 빠른 처리량
    • 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: 완전한 스레드 세이프(stateless) 구조로 바인딩에 친화된 API 제공
    • 스트리밍 API: 대용량 파일 병렬 처리 지원, 자동 스레드 감지 및 체크섬 검증 포함
    • Sans-IO 구조로 설계되어, 언어별 I/O 드라이버를 직접 구현 가능 (zxc_sans_io.h 기반)
  • 품질 및 안정성 보장
    • 지속적 퍼징(ClusterFuzzLite)
    • 정적 분석(CPPChecker, Clang)
    • 동적 검증(Valgrind, ASan/UBSan)
    • 모든 연산에서 명시적 버퍼 용량 지정을 요구하는 안전한 API 구조
  • BSD 3-Clause License