ระหว่าง xz, gzip และ bzip2 อัลกอริทึมการบีบอัดใดที่ให้ขนาดไฟล์ที่เล็กที่สุดและความเร็วที่เร็วที่สุดเมื่อทำการบีบอัด tarball ขนาดใหญ่พอสมควร?
ระหว่าง xz, gzip และ bzip2 อัลกอริทึมการบีบอัดใดที่ให้ขนาดไฟล์ที่เล็กที่สุดและความเร็วที่เร็วที่สุดเมื่อทำการบีบอัด tarball ขนาดใหญ่พอสมควร?
คำตอบ:
ในการทดสอบความเครียดของฉันฉันบีบอัดข้อมูล 464 เมกะไบต์โดยใช้รูปแบบสามรายการ Gzip ส่งคืนไฟล์ 364 MB Bzip2 ส่งคืนไฟล์ 315 MB Xz ส่งคืนไฟล์ 254 MB ฉันทำการทดสอบความเร็วอย่างง่ายด้วย:
การบีบอัด:
1: Gzip
2: Xz
3: Bzip2 (แฟนของฉันกำลังเป่าไปนิดหน่อยในขณะที่มันกำลังเกิดขึ้นแสดงว่า Athlon II ของฉันค่อนข้างเครียด)
การบีบอัด:
1: Xz
2: Gzip
3: Bzip2
โปรดทราบว่าการทดสอบทั้งหมดนี้ทำด้วย 7-Zip เวอร์ชันล่าสุด
Xz เป็นรูปแบบที่ดีที่สุดสำหรับการบีบอัดที่โค้งมนในขณะที่ Gzip นั้นดีมากสำหรับความเร็ว Bzip2 เหมาะสมกับอัตราส่วนการบีบอัดแม้ว่า xz น่าจะถูกใช้แทน
bzip2 -9 <file>
หรือไม่?
ฉันทำมาตรฐานของตัวเองในการติดตั้ง 1.1GB Linux อิมเมจ vmdk:
rar =260MB comp= 85s decomp= 5s
7z(p7z)=269MB comp= 98s decomp=15s
tar.xz =288MB comp=400s decomp=30s
tar.bz2=382MB comp= 91s decomp=70s
tar.gz =421MB comp=181s decomp= 5s
ทุกระดับการบีบอัดสูงสุด, CPU Intel I7 3740QM, Memory 32GB 1600, ต้นทางและปลายทางบน RAM disk
โดยทั่วไปฉันใช้ rar หรือ 7z สำหรับการเก็บถาวรไฟล์ปกติเช่นเอกสาร
และสำหรับการเก็บถาวรไฟล์ระบบฉันใช้. tar.gz หรือ. tar.xz โดย file-roller หรือ tar พร้อมกับตัวเลือก -z หรือ -J พร้อมกับ --preserve เพื่อบีบอัดข้อมูลดั้งเดิมด้วย tar และสงวนสิทธิ์ (หรืออีกวิธีหนึ่งคือ. tar.7z หรือ . tar.rar สามารถใช้ได้)
อัปเดต: เนื่องจาก tar จะสงวนสิทธิ์ปกติเท่านั้นและไม่ใช่ ACLs ด้วยเช่นกันคุณต้องสำรองและคืนค่าสิทธิ์และ ACL ด้วยตนเองผ่านทาง getfacl และ sefacl ด้วยตนเองผ่านทาง getfacl ด้วยตนเองซึ่งน่าจะเป็นตัวเลือกที่ดีที่สุดสำหรับทั้งการเก็บถาวรไฟล์ สงวนสิทธิ์และ ACLs มีการตรวจสอบการทดสอบความสมบูรณ์และความสามารถในการเข้ารหัสข้อเสียเพียงอย่างเดียวคือ p7zip ไม่สามารถใช้ได้ทุกที่
ฉันคิดว่าบทความนี้ให้ผลลัพธ์ที่น่าสนใจมาก
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
รูปแบบที่มีประสิทธิภาพสูงสุดขนาดคือ xz และ lzma ซึ่งทั้งสองแบบผ่านพารามิเตอร์ -e
อัลกอริทึมที่เร็วที่สุดคือไกล lzop และ lz4 ซึ่งสามารถสร้างระดับการบีบอัดไม่ไกลจาก gzip ใน 1.3 วินาทีในขณะที่ gzip ใช้เวลา 8.1 วินาที อัตราส่วนการบีบอัดคือ 2.8 สำหรับ lz4 และ 3.7 สำหรับ gzip
นี่คือผลลัพธ์บางส่วนที่ฉันดึงมาจากบทความนี้:
Gzip: 8.1s @ 3.7
lz4: 1.3s @ 2.8
xz: 32.2s @ 5.43
xz -e: 6m40 @ 7.063
ดังนั้นถ้าคุณต้องการความเร็วจริงๆ lz4 นั้นยอดเยี่ยมและยังคงอัตราส่วนการบีบอัด 2.8
หากคุณต้องการสำรองไบต์, xz ที่ระดับการบีบอัดสูงสุด (9) ทำงานได้ดีที่สุดสำหรับไฟล์ข้อความเช่นเคอร์เนลแหล่งที่มา อย่างไรก็ตามมันใช้เวลานานมากและใช้หน่วยความจำมาก
สิ่งที่ดีที่ต้องการลดผลกระทบต่อเวลาและพื้นที่ให้น้อยที่สุดคือ gzip นี่คือสิ่งที่ฉันจะใช้เพื่อทำสำเนาสำรองรายวันของสภาพแวดล้อมการผลิตด้วยตนเอง