มีอัลกอริธึมการบีบอัดหลายรอบและbzip2
เป็นหนึ่งในขั้นตอนที่ช้ากว่า ธรรมดาgzip
มีแนวโน้มที่จะเร็วขึ้นอย่างมีนัยสำคัญที่มักจะบีบอัดไม่เลว เมื่อความเร็วเป็นสิ่งที่สำคัญที่สุดlzop
เป็นที่ชื่นชอบ การบีบอัดไม่ดี แต่เร็วมาก
ฉันตัดสินใจที่จะมีความสนุกสนานและเปรียบเทียบอัลกอริทึมบางอย่างรวมถึงการใช้งานแบบขนาน ไฟล์อินพุตคือเอาต์พุตของpg_dumpall
คำสั่งบนเวิร์กสเตชันของฉันซึ่งเป็นไฟล์ SQL ขนาด 1913 MB ฮาร์ดแวร์คือ quad-core i5 ที่เก่ากว่า เวลาเป็นเวลานาฬิกาแขวนของการบีบอัด การใช้งานแบบขนานถูกตั้งค่าให้ใช้คอร์ทั้ง 4 คอร์ ตารางเรียงตามความเร็วในการบีบอัด
Algorithm Compressed size Compression Decompression
lzop 398MB 20.8% 4.2s 455.6MB/s 3.1s 617.3MB/s
lz4 416MB 21.7% 4.5s 424.2MB/s 1.6s 1181.3MB/s
brotli (q0) 307MB 16.1% 7.3s 262.1MB/s 4.9s 390.5MB/s
brotli (q1) 234MB 12.2% 8.7s 220.0MB/s 4.9s 390.5MB/s
zstd 266MB 13.9% 11.9s 161.1MB/s 3.5s 539.5MB/s
pigz (x4) 232MB 12.1% 13.1s 146.1MB/s 4.2s 455.6MB/s
gzip 232MB 12.1% 39.1s 48.9MB/s 9.2s 208.0MB/s
lbzip2 (x4) 188MB 9.9% 42.0s 45.6MB/s 13.2s 144.9MB/s
pbzip2 (x4) 189MB 9.9% 117.5s 16.3MB/s 20.1s 95.2MB/s
bzip2 189MB 9.9% 273.4s 7.0MB/s 42.8s 44.7MB/s
pixz (x4) 132MB 6.9% 456.3s 4.2MB/s 7.9s 242.2MB/s
xz 132MB 6.9% 1027.8s 1.9MB/s 17.3s 110.6MB/s
brotli (q11) 141MB 7.4% 4979.2s 0.4MB/s 3.6s 531.6MB/s
หาก 16 คอร์ของเซิร์ฟเวอร์ของคุณไม่มีการใช้งานเพียงพอที่ทุกอย่างจะถูกนำมาใช้ในการบีบอัดpbzip2
อาจจะทำให้คุณมีความเร็วมากขึ้น แต่คุณต้องการความเร็วเพิ่มขึ้นและคุณสามารถทนไฟล์ที่มีขนาดใหญ่กว่า ~ 20% gzip
น่าจะเป็นทางออกที่ดีที่สุดของคุณ
อัปเดต:ฉันเพิ่มbrotli
ผลลัพธ์ (ดูคำตอบของ TOOGAM) ลงในตาราง brotli
s การตั้งค่าคุณภาพการบีบอัดที่มีผลกระทบขนาดใหญ่มากในอัตราการบีบอัดและความเร็วดังนั้นฉันเพิ่มสามการตั้งค่า ( q0
, q1
และq11
) เริ่มต้นเป็นแต่มันช้ามากและยังคงเลวร้ายยิ่งกว่าq11
ดูดีมากแม้ว่า; อัตราส่วนการบีบอัดเท่ากัน แต่เร็วกว่า 4-5 เท่า!xz
q1
gzip
อัปเดต:เพิ่มlbzip2
(ดูความคิดเห็น gmathts) และzstd
(ความคิดเห็นของ Johnny) ลงในตารางและจัดเรียงตามความเร็วในการบีบอัด lbzip2
ทำให้bzip2
ครอบครัวกลับมาทำงานอีกครั้งด้วยการบีบอัดอย่างรวดเร็วสามเท่าpbzip2
ด้วยอัตราการบีบอัดที่ยอดเยี่ยม! zstd
ก็ดูสมเหตุสมผล แต่ก็เอาชนะbrotli (q1)
ทั้งในอัตราส่วนและความเร็ว
ข้อสรุปดั้งเดิมของฉันที่ว่าธรรมดาgzip
คือทางออกที่ดีที่สุดที่เริ่มจะดูไร้สาระ แม้ว่าจะแพร่หลายทั่วไป แต่ก็ยังไม่สามารถเอาชนะได้)