কম্পিউটার টিউটোরিয়াল

গারবেজ কলেক্টর কী সকল পাইথন অবজেক্ট ট্র্যাক করতে পারে?


পাইথন গারবেজ পরিষ্কার করার জন্য দুটি টেকনিক ব্যবহার করে। একটি হলো রেফারেন্স কাউন্টিং, যা সকল অবজেক্টকে প্রভাবিত করে কিন্তু যেসব অবজেক্ট সরাসরি বা পরোক্ষভাবে একে অপকে রেফার করে সেগুলো পরিষ্কার করতে পারে না। সেটাই যেখানে আসল গারবেজ কলেক্টর কাজে আসে: পাইথনের gc মডিউল, যা उन्हीं অবজেক্টগুলোর মধ্যে সাইক্লিক রেফারেন্স খোঁজে যা সেটি জানতে পারে। শুধু যেসব অবজেক্ট সাইক্লিক রেফারেন্সের অংশ হতে পারে সেগুলো সাইক্লিক gc-তে অংশ নেয়। উদাহরণস্বরূপ, লিস্ট অংশ নেয়, কিন্তু স্ট্রিং নেয় না; কারণ স্ট্রিং অন্য কোনো অবজেক্ট রেফার করে না।

সকল পাইথন ক্লাস এবং তাদের ইনস্ট্যান্স অটোমেটিক্যালি সাইক্লিক gc-তে ট্র্যাক হয়। C-তে ডিফাইনড টাইপগুলো না, যদি সেগুলো চেষ্টা না করে। সকল বিল্ট-ইন টাইপ যা সাইক্লিক হতে পারে সেগুলো করে। কিন্তু এর মানে gc মডিউল শুধু সেই টাইপগুলোকে জানে যা সহযোগিতা করে।

কলেকশন মেকানিজমের বাইরে ও একটি Факт আছে যে পাইথনের নিজস্ব এগরিগেটিং মেমরি অ্যালোকেটর (obmalloc) আছে, যা পুরো মেমরি আরেনা অ্যালোকেট করে এবং এর অধিকাংশ ছোট অবজেক্টের জন্য ব্যবহার করে। পাইথন এখন এই আরেনাগুলো ফ্রি করে যখন সেগুলো সম্পূর্ণ খালি হয় (দীর্ঘ সময় এটি করত না), কিন্তু আসলে একটি আরেনা খালি করা दुর্লভ: কারণ পাইথন অবজেক্টগুলো মুভেবল নয়, তাই আপনি কিছু স্ট্র্যাগলারকে অন্য আরেনাতে সরিয়ে দিতে পারবেন না।

  1. পাইথন প্যান্ডাস - প্যান্ডাস ইন্ডেক্স ইন্টারভাল অবজেক্ট ধারণ করে কিনা তা যাচাই করুন

  2. Wi-Fi কীভাবে বিশ্বজুড়ে আপনাকে ট্র্যাক করতে পারে

  3. পাইথনে অপরিবর্তনশীল স্ট্রিং-এর আইডি পরিবর্তন করা

  4. এন্টিভাইরাস কি আপনার PC-কে ধীর করে? সাধারণ মিথ্যা ভাঙা