ฉันรู้จัก gzip มาหลายปีแล้วเมื่อเร็ว ๆ นี้ฉันเห็นว่ามีการใช้ bzip ในที่ทำงาน โดยพื้นฐานแล้วพวกเขามีความเสมอภาคหรือมีข้อดีข้อเสียที่สำคัญกับอีกข้อหนึ่ง?
ฉันรู้จัก gzip มาหลายปีแล้วเมื่อเร็ว ๆ นี้ฉันเห็นว่ามีการใช้ bzip ในที่ทำงาน โดยพื้นฐานแล้วพวกเขามีความเสมอภาคหรือมีข้อดีข้อเสียที่สำคัญกับอีกข้อหนึ่ง?
คำตอบ:
Gzip และ bzip2 เทียบเท่ากับหน้าที่ (มีครั้งหนึ่งเคยเป็น bzip แต่ดูเหมือนว่าจะหายไปจากโลกอย่างสมบูรณ์) รูปแบบการบีบอัดทั่วไปอื่น ๆ คือ zip, rar และ 7z; ทั้งสามนี้ทำทั้งการบีบอัดและการเก็บถาวร (การบรรจุไฟล์หลายไฟล์ไว้ในที่เดียว) นี่คือการให้คะแนนทั่วไปในแง่ของความเร็วความพร้อมใช้งานและอัตราส่วนการบีบอัดทั่วไป (โปรดทราบว่าการให้คะแนนเหล่านี้ค่อนข้างเป็นอัตวิสัยอย่านำมาเป็นข่าวประเสริฐ):
decompression speed (fast > slow): gzip, zip > 7z > rar > bzip2
compression speed (fast > slow): gzip, zip > bzip2 > 7z > rar
compression ratio (better > worse): 7z > rar, bzip2 > gzip > zip
availability (unix): gzip > bzip2 > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip, bzip2
อย่างที่คุณเห็นไม่มีผู้ชนะที่ชัดเจน หากคุณต้องการพึ่งพาโปรแกรมที่น่าจะติดตั้งแล้วให้ใช้ zip บน Windows (หรือถ้าเป็นไปได้เก็บถาวรแบบขยายไฟล์เองเนื่องจาก Windows ไม่ได้จัดส่งมาพร้อมกับโปรแกรมเหล่านี้) และ gzip บนยูนิกซ์ ถ้าคุณต้องการบีบอัดสูงสุดใช้ 7z
Rar ยังมีข้อเสียที่เท่าที่ฉันรู้ไม่มีซอฟต์แวร์ฟรีที่สร้างคลังเก็บ rar หรือที่สามารถแยกคลังเก็บ rar ทั้งหมด รูปแบบอื่น ๆ มีการใช้งานฟรีและไม่มีการเรียกร้องสิทธิบัตร (ร้ายแรง)
bzip
เพราะใช้การเข้ารหัสอัลกอริทึมที่จดสิทธิบัตร เนื่องจากสิทธิบัตรจึงได้รับการออกแบบใหม่ให้ใช้การเข้ารหัส Huffman แทน ในระหว่างการออกแบบใหม่นี้ได้มีการเพิ่มคุณสมบัติและการปรับปรุงใหม่ สิ่งพื้นฐานที่ทำให้อัลกอริทึมการบีบอัดที่เป็นเอกลักษณ์แม้ว่า Burrows – Wheeler transform ยังคงเหมือนเดิมทั้งสองเวอร์ชัน
เท่าที่ฉันสามารถบอกได้ gzip นั้นจะทำงานได้เร็วขึ้นในขณะที่ bzip โดยรวมจะให้การบีบอัดที่ดีกว่า (เล็กกว่า)
อัลกอริทึมมีเวลาหน่วยความจำการแลกเปลี่ยนพื้นที่ที่แตกต่างกัน โปรดจำไว้ว่าอัลกอริธึมเหล่านี้เขียนมาแล้วสักครู่และสมาร์ทโฟนของคุณมีซีพียูมากกว่าเดสก์ท็อปในสมัยนั้นหลายเท่า
สิ่งที่คุณเลือกอยู่ระหว่างสากล (.gz) และการบีบอัดอีกเล็กน้อย (.bz2) มีเพียงคุณเท่านั้นที่พูดได้ว่าคุณใส่ใจอะไรมากกว่านี้
ข้อดีอย่างหนึ่งของ. gz คือมันสามารถบีบอัดสตรีมซึ่งเป็นลำดับที่คุณไม่สามารถมองข้ามได้ ทำให้เป็นคอมเพรสเซอร์อย่างเป็นทางการของ http สตรีม ฉันจำเป็นต้องใช้ gzip หนึ่งครั้งเนื่องจากสิ่งนั้น แต่ไม่น่าที่คุณจะต้องคิดถึงมัน
นี่คือรายการของไซต์ที่ทดสอบอัลกอริทึมการบีบอัดเพื่อค้นหาเพียง bzip และ gzip คุณจะต้องทำการขุดบางส่วน แต่ไซต์ส่วนใหญ่จะแสดงรายการลักษณะของอัลกอริทึม วิธีนี้คุณสามารถเปรียบเทียบสิ่งที่สำคัญกับคุณขนาด (อัตราส่วนการบีบอัด) เวลาหน่วยความจำซีพียู
http://www.maximumcompression.com/benchmarks/benchmarks.php
จากประสบการณ์ของฉัน bzip ให้อัตราส่วนการบีบอัดที่ดีกว่า gzip อย่างต่อเนื่อง บวกกับ 7zip ในฐานะผู้จัดการและอัลกอริทึม bzip, 7zip สามารถใช้ประโยชน์จากตัวประมวลผลแบบมัลติคอร์
ต่อhttp://tukaani.org/lzma/benchmarks.html gzip บีบอัดสองครั้งเร็วเท่า bzip2 และคลายการบีบอัดสิบเท่าเร็ว
เช่นสำหรับใช้กับการแคช s3 บนเทรวิสและอื่น ๆ ที่คุณต้องการความเร็วในการบีบอัด / คลายการบีบอัดไม่ใช่เพียงแค่ขนาดเล็ก gzip อาจเป็นการแลกเปลี่ยนที่ดี