हमें कभी-कभी पाइथन वस्तुओं (सूची, शब्दकोश, स्ट्रिंग, आदि) को कैश में सहेजने और कैश से पढ़ने के बाद डिकंप्रेस करने से पहले संपीड़ित करने की आवश्यकता होती है।
सबसे पहले हमें यह सुनिश्चित करने की आवश्यकता है कि हमें वस्तुओं को संपीड़ित करने की आवश्यकता है। हमें जांचना चाहिए कि क्या डेटा संरचनाएं/ऑब्जेक्ट्स कैश में असम्पीडित फिट होने के लिए बहुत बड़ी हैं। संपीड़न/विसंपीड़न के लिए एक ओवरहेड होने जा रहा है, कि हमें पहले स्थान पर कैशिंग द्वारा किए गए लाभ के साथ व्यापार करना होगा।
यदि हमें वास्तव में संपीड़न की आवश्यकता है, तो हम शायद zlib का उपयोग करना चाहते हैं।
यदि हम zlib का उपयोग करने जा रहे हैं, तो हम CPU समय बनाम संपीड़न स्तरों को संतुलित करने के लिए, संपीड़न विधि में उपलब्ध विभिन्न संपीड़न स्तरों के साथ प्रयोग करना चाहेंगे:
zlib.compress(string[, level])
स्ट्रिंग में डेटा को संपीड़ित करता है, एक स्ट्रिंग को वापस करता है जिसमें संपीड़ित डेटा होता है। स्तर 1 से 9 तक का एक पूर्णांक है जो संपीड़न के स्तर को नियंत्रित करता है; 1 सबसे तेज है और कम से कम संपीड़न पैदा करता है, 9 सबसे धीमा है और सबसे अधिक उत्पादन करता है। डिफ़ॉल्ट मान 6 है। यदि कोई त्रुटि होती है तो त्रुटि अपवाद को बढ़ाता है।