আমাদের মাঝে মাঝে পাইথন অবজেক্টগুলিকে (তালিকা, অভিধান, স্ট্রিং, ইত্যাদি) ক্যাশে সংরক্ষণ করার আগে সংকুচিত করতে হবে এবং ক্যাশে থেকে পড়ার পরে ডিকম্প্রেস করতে হবে।
প্রথমে আমাদের নিশ্চিত হতে হবে যে আমাদের বস্তুগুলিকে সংকুচিত করতে হবে। আমাদের চেক করা উচিত যে ডেটা স্ট্রাকচার/অবজেক্টগুলি খুব বড় কিনা তা ক্যাশে কম্প্রেস না করে ফিট করার জন্য। কম্প্রেশন/ডিকম্প্রেশনের জন্য একটি ওভারহেড হতে চলেছে, যেটি আমাদের প্রথমে ক্যাশিং দ্বারা করা লাভের সাথে ট্রেডঅফ করতে হবে।
আমাদের যদি সত্যিই কম্প্রেশনের প্রয়োজন হয়, তাহলে আমরা সম্ভবত zlib ব্যবহার করতে চাই।
যদি আমরা zlib ব্যবহার করতে যাচ্ছি, আমরা CPU সময় বনাম কম্প্রেশন স্তরের ভারসাম্য বজায় রাখতে কম্প্রেস পদ্ধতিতে উপলব্ধ বিভিন্ন কম্প্রেশন স্তর নিয়ে পরীক্ষা করতে চাই:
zlib.compress(স্ট্রিং[, লেভেল])
স্ট্রিং-এ ডেটা সংকুচিত করে, সংকুচিত ডেটা ধারণকারী একটি স্ট্রিং ফেরত দেয়। স্তর হল 1 থেকে 9 পর্যন্ত একটি পূর্ণসংখ্যা যা কম্প্রেশন স্তর নিয়ন্ত্রণ করে; 1 দ্রুততম এবং সর্বনিম্ন কম্প্রেশন উৎপন্ন করে, 9 সবচেয়ে ধীর এবং সর্বাধিক উত্পাদন করে। ডিফল্ট মান হল 6৷ কোনো ত্রুটি দেখা দিলে ত্রুটির ব্যতিক্রম উত্থাপন করে৷
৷