তাত্ক্ষণিক ক্ষেত্র, অ্যারের উপাদান
যদি কোনও জিনিসের রেফারেন্স থাকে তবে তা আবর্জনা সংগ্রহ করা যাবে না। বিশেষত যদি সেই বস্তুটি (এবং এর পেছনের পুরো গ্রাফ) বড় হয় তবে কেবলমাত্র একটিই রেফারেন্স রয়েছে যা আবর্জনা সংগ্রহ বন্ধ করে দিচ্ছে, এবং সেই রেফারেন্সটির সত্যই আর দরকার নেই, এটি দুর্ভাগ্যজনক পরিস্থিতি।
প্যাথলজিকাল কেসগুলি হ'ল সেই অবজেক্টটি যা পুরো XML DOM ট্রিটিকে একটি কনসাল্টিয়াল দৃষ্টান্ত ধরে রাখে যা এটি কনফিগার করার জন্য ব্যবহৃত হয়েছিল, এমবিয়ান যা নিবন্ধভুক্ত ছিল না, বা কোনও অবিযুক্ত চাকরীযুক্ত ওয়েব অ্যাপ্লিকেশন থেকে কোনও অবজেক্টের একক রেফারেন্স যা পুরো ক্লাস লোডারকে লোড হওয়া থেকে বিরত রাখে ।
সুতরাং আপনি যদি নিশ্চিত না হন যে অবজেক্টটি রেফারেন্সটি নিজেই রাখে তবে সেগুলি (বা তারপরেও) আবর্জনা সংগ্রহ করা হবে, আপনার আর প্রয়োজন নেই এমন সমস্ত জিনিস বাতিল করে দেওয়া উচিত।
স্কোপড ভেরিয়েবল:
যদি আপনি কোনও স্থানীয় পরিবর্তনশীলকে এর পরিধিটি শেষ হওয়ার আগেই বাতিল করার জন্য বিবেচনা করছেন, যাতে এটি আবর্জনা সংগ্রহকারী দ্বারা পুনরুদ্ধার করা যায় এবং এটি "এখন থেকে অকেজো" হিসাবে চিহ্নিত করতে পারেন, আপনি পরিবর্তে আরও সীমিত সুযোগে রাখার বিষয়টি বিবেচনা করা উচিত ।
{
BigObject obj = ...
doSomethingWith(obj);
obj = null; // <-- explicitly set to null
doSomethingElse();
}
হয়ে
{
{
BigObject obj = ...
doSomethingWith(obj);
} // <-- obj goes out of scope
doSomethingElse();
}
দীর্ঘ, ফ্ল্যাট স্কোপগুলি কোডের সুগমতার জন্য সাধারণত খারাপ। কেবল সেই উদ্দেশ্যে জিনিসগুলি ভেঙে ফেলার জন্য ব্যক্তিগত পদ্ধতিগুলি প্রবর্তন করা খুব শোনা যায় না।