গার্বেজ কলেক্টর (GC) মেমোরির এলোকেশন (allocation) এবং রিলিজ (release) পরিচালনা করে। গার্বেজ কলেক্টর একটি স্বয়ংক্রিয় মেমোরি ম্যানেজার হিসেবে কাজ করে।
- আপনাকে মেমোরি কীভাবে এলোকেট বা রিলিজ করতে হয় বা সেই মেমোরি ব্যবহার করা অবজেক্টগুলোর লাইফটাইম ম্যানেজ করতে হয় তা জানার দরকার নেই।
- যেকোনো সময় আপনি
newকীওয়ার্ড দিয়ে একটি অবজেক্ট ডিক্লেয়ার করলে বা একটি ভ্যালু টাইপ বক্সড (boxed) হয়, তখন একটি এলোকেশন তৈরি হয়। এলোকেশনগুলো সাধারণত খুব দ্রুত হয়। - যখন কোনো অবজেক্ট এলোকেট করার জন্য পর্যাপ্ত মেমোরি নেই, তখন GC অবশ্যই গার্বেজ মেমোরি সংগ্রহ ও ডিসপোজ করে নতুন এলোকেশনের জন্য মেমোরি ফ্রি করে।
- এই প্রক্রিয়াকেই গার্বেজ কালেকশন বলা হয়।
C#-এ গার্বেজ কালেকশনের সুবিধাগুলো:
- অ্যাপ্লিকেশন ডেভেলপ করার সময় আপনাকে ম্যানুয়ালি মেমোরি ফ্রি করতে হয় না।
- এটি ম্যানেজড হিপ (managed heap) এ অবজেক্টগুলো কার্যকরভাবে এলোকেট করে।
- যখন অবজেক্টগুলো আর ব্যবহার করা হয় না, তখন সেগুলোর মেমোরি ক্লিয়ার করে রিক্লেইম (reclaim) করে এবং ভবিষ্যতের এলোকেশনের জন্য মেমোরি উপলব্ধ রাখে।
- ম্যানেজড অবজেক্টগুলো স্বয়ংক্রিয়ভাবে ক্লিন কন্টেন্ট পায়, তাই তাদের কনস্ট্রাক্টরকে প্রতিটি ডেটা ফিল্ড ইনিশিয়ালাইজ করতে হয় না।