BZip3 - BZip2의 더 낫고, 더 빠르고, 더 강력한 정신적 후속작

2 hours ago 2

BZip3는 BZip2의 정신적 후속 압축 도구로, 특히 텍스트와 코드 압축에 강점을 가지며 더 높은 압축률과 성능을 목표로 함 0차 문맥 혼합 엔트로피 코더, 접미사 배열 기반 Burrows-Wheeler 변환, RLE 및 Lempel Ziv+Prediction 처리를 결합함 Perl5의 역대 릴리스 소스를 묶은 벤치마크에서 bzip3 -b 511 의 압축 결과는 546,456,978바이트로, xz의 2,056,645,240바이트와 bzip2의 3,441,163,911바이트보다 작았음 컴파일러와 플랫폼에 따라 성능 차이가 크며, x64 Linux clang13 빌드는 스레드당 압축 17MiB/s·해제 23MiB/s에 도달할 수 있지만 Windows와 32비트 빌드는 상당히 느릴 수 있음 전체 프로젝트는 LGPLv3 단일 라이선스이며, 광범위한 테스트에도 복구 불가능한 데이터 손실 가능성을 배제하지 않으므로 이를 감수할 수 있는 데이터에만 사용해야 함 압축 방식과 구현 BZip3는 BZip2보다 높은 압축률과 더 나은 성능을 추구하며, 이전 도구와 마찬가지로 텍스트·코드 압축에 특히 강함 압축 과정은 다음 요소를 결합함 0차 문맥 혼합 엔트로피 코더를 사용함 접미사 배열을 활용한 빠른 Burrows-Wheeler 변환(BWT)을 수행함 RLE와 Lempel Ziv+Prediction 처리를 사용하며, 후자는 LZ77 방식 문자열 매칭과 PPM 방식 문맥 모델링에 기반함 BWT 구성에는 libsais 를 사용하며, LZP 인코더 개선에는 Ilya Grebnov의 참조 구현을 활용함 공개 도메인인 Ilya Muravyov의 BWT 후처리 코더를 파생한 코드도 사용함 Perl5 소스 압축 벤치마크 역대 Perl5 릴리스를 내려받아 gzip 압축을 해제하고, 나온 .tar 파일을 하나의 all.tar로 묶어 여러 압축 도구를 비교함 압축 결과와 경과 시간, 메모리 사용량은 다음과 같음 xz -T16 -9 -k: 2,056,645,240바이트, 12분 9.24초, 메모리 14,658M bzip2 -9 -k: 3,441,163,911바이트, 17분 16.64초, 메모리 8M bzip3 -e -b 256 -j 12: 1,001,957,587바이트, 7분 10.10초, 메모리 18,301M bzip3 -e -b 511 -j 4: 546,456,978바이트, 7분 8.65초, 메모리 12,178M zstd -T12 -16: 3...

Read Entire Article