गज़िप संपीड़न में सुधार करने के लिए, आप सूची में पास होने के लिए "समान" तार चाहते हैं। इस तरह की समानता को परिभाषित करने के कई तरीके हैं; मुझे एक उचित एक का वर्णन करें जो अभ्यास में अच्छी तरह से काम करता है। याद रखें कि gzip का ब्लॉक आकार 64K है। इस प्रकार, आपका डेटा 64K बाइट्स के ब्लॉक में विभाजित हो जाएगा और प्रत्येक ब्लॉक स्वतंत्र रूप से संकुचित हो जाएगा। थियो ऑप्टिमाइज़ेशन कंप्रेशन, हर ब्लॉक में अलग-अलग k-mers (साइज k) के सब्सट्रक्शन की संख्या को कम करने की आवश्यकता होगी। प्रेरणा यह है कि इस तरह के सभी पदार्थों को एक पहचानकर्ता के साथ बदल दिया जाएगा।
जबकि उपरोक्त समस्या सिद्धांत में कठिन है (यह हाइपरग्राफ विभाजन का एक प्रकार है), वहाँ तेजी से व्यावहारिक एल्गोरिदम मौजूद हैं। मैं एलएसएच-जैसे क्लस्टरिंग की सिफारिश करूंगा जो आपके डेटा पर एक पास के साथ लागू किया जा सकता है। ध्यान दें कि (वर्णानुक्रम में) छंटाई एक साथ तार "क्लस्टर" करने का एक और तरीका है। हालांकि, विशेष क्लस्टरिंग एल्गोरिदम बेहतर प्रदर्शन कर सकते हैं।
एक विकल्प zstd का उपयोग करना है , जो कि (i) तेजी से है, (ii) उच्च संपीड़न अनुपात प्राप्त करता है, और (iii) ब्लॉक आकार पर सीमाएं नहीं है (और इस प्रकार, इनपुट आदेश के बावजूद तार को समान रूप से अच्छी तरह से संकुचित करता है)।