आसपास कई संपीड़न एल्गोरिदम हैं, और bzip2
धीमे लोगों में से एक है। सादा gzip
आमतौर पर ज्यादा खराब संपीड़न नहीं होने पर काफी तेज हो जाता है। जब गति सबसे महत्वपूर्ण है, lzop
मेरा पसंदीदा है। गरीब संपीड़न, लेकिन ओह इतनी जल्दी।
मैंने कुछ मज़ेदार होने और कुछ एल्गोरिदम की तुलना करने का फैसला किया, जिसमें उनके समानांतर कार्यान्वयन भी शामिल हैं। इनपुट फ़ाइल pg_dumpall
मेरे वर्कस्टेशन, 1913 एमबी एसक्यूएल फ़ाइल पर कमांड का आउटपुट है । हार्डवेयर एक पुराना क्वाड-कोर 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
तालिका में (TOOGAMs उत्तर देखें) परिणाम जोड़े । brotli
तो मैं तीन सेटिंग्स जोड़ा रों संपीड़न गुणवत्ता सेटिंग, संपीड़न अनुपात और गति पर एक बहुत बड़ा प्रभाव पड़ता है ( q0
, q1
, और q11
)। डिफ़ॉल्ट है q11
, लेकिन यह बहुत धीमा है, और अभी भी इससे भी बदतर है xz
। q1
हालांकि बहुत अच्छा लग रहा है; के रूप में एक ही संपीड़न अनुपातgzip
, लेकिन उपवास के रूप में 4-5 बार!
अद्यतन:lbzip2
तालिका में जोड़ा गया (gmathts टिप्पणी देखें) और zstd
(जॉनी की टिप्पणी), और इसे संपीड़न गति से हल किया। एक महान संपीड़न अनुपात के साथ तीन गुना तेजी से संपीड़ित करके परिवार को वापस चलाने में lbzip2
डालता है! भी उचित लगता है लेकिन द्वारा हराया हैbzip2
pbzip2
zstd
brotli (q1)
अनुपात और गति दोनों है।
मेरा मूल निष्कर्ष यह है कि सादा gzip
सबसे अच्छा दांव लगभग मूर्खतापूर्ण लगने लगा है। हालांकि सर्वव्यापीता के लिए, यह अभी भी हरा नहीं सकता है;)