যদি আমি প্রোগ্রাম করি - না জেনে - একটি মেমরি ফাঁস, এবং অ্যাপ্লিকেশনটি শেষ হয়ে যায়, তাহলে কী ফাঁস হওয়া মেমরিটি মুক্তি পাবে?
যদি আমি প্রোগ্রাম করি - না জেনে - একটি মেমরি ফাঁস, এবং অ্যাপ্লিকেশনটি শেষ হয়ে যায়, তাহলে কী ফাঁস হওয়া মেমরিটি মুক্তি পাবে?
উত্তর:
হ্যাঁ, একটি "মেমরি ফুটো" হ'ল মেমরি যা কোনও প্রক্রিয়াটির সাথে আর উল্লেখ করা হয় না এবং এভাবে আর মুক্ত হয় না। ওএস এখনও কোনও প্রক্রিয়াতে বরাদ্দকৃত সমস্ত মেমরির খোঁজ রাখে এবং প্রক্রিয়াটি শেষ হয়ে গেলে এটিকে মুক্ত করে দেয়।
উইন্ডোজ, লিনাক্স, সোলারিস ইত্যাদির সাধারণ "স্বাদ" এর ক্ষেত্রে যেমন ওএস স্মৃতি মুক্ত করে দেয়, তেমনি বিভিন্ন রিয়েল-টাইম অপারেটিং সিস্টেমগুলির মতো বিশেষায়িত পরিবেশে প্রোগ্রামটি বন্ধ হয়ে গেলে স্মৃতি মুক্ত করা যায় না।
আপনার প্রোগ্রামটি সম্পাদনকারী ওএস সাধারণত ক্লিনআপ মেমরি করে যা স্পষ্টভাবে মুক্ত হয় না এবং হ্যান্ডলগুলি যা স্পষ্টভাবে বন্ধ হয় না, তবে এটি সি ++ স্ট্যান্ডার্ড দ্বারা গ্যারান্টিযুক্ত নয়। আপনি এমন কিছু এম্বেড থাকা ডিভাইস পেতে পারেন যা আপনার মেমোরি ফাঁস মুক্ত করে না।
এটি উইন্ডোজ এবং লিনাক্সের সমস্ত ডিস্ট্রো যা আমি কখনও দেখেছি তা মেমরি ফাঁস মুক্ত করে দেয় said
এটি নিজে পরীক্ষা করার জন্য আপনি মেমরি ফাঁসের একটি বিশাল লুপটি সহজেই তৈরি করতে পারেন। আপনার র্যামের ব্যবহার বাড়তে দেখুন এবং তারপরে আপনার প্রোগ্রামটি বন্ধ করুন। আপনি দেখতে পাবেন যে র্যামের ব্যবহার পিছিয়ে গেছে।
সি ++ ব্যবহার করার সময় আর একটি বিবেচনা হ'ল আপনি যদি নিজের গাদা বরাদ্দ মেমরিটি মুছে না ফেলেন তবে আপনার ধ্বংসকারীদেরও ডাকা হবে না। কখনও কখনও আপনার অন্যান্য পার্শ্ব প্রতিক্রিয়াগুলিও ঘটতে পারে যদি আপনার ধ্বংসকারীদের ডাকা না হয়।
সাধারণত, হ্যাঁ কিছু সিস্টেম ভাগ করা মেমরি ব্লকগুলির মতো জিনিসগুলিকে সমর্থন করে যা কোনও প্রোগ্রামের বাইরে চলে গেলে স্বয়ংক্রিয়ভাবে মুক্ত হয় না। বেশিরভাগ এখনও একটি রেফারেন্স গণনা রাখে এবং এটিকে মুছে ফেলা হলে সমস্ত প্রোগ্রাম এটিকে মুছুন তবে কিছু না (যেমন, 16-বিট উইন্ডোতে কয়েকটি ধরণের আইটেম ছিল যা কিছু উল্লেখ না করেও বরাদ্দ থাকবে - যদিও এটি সাধারণত সমস্যার জন্য যথেষ্ট পরিমাণে জমে থাকা আগে অন্যান্য কারণে ক্রাশ হয়ে যায় ...)
আপনি কী স্মৃতি ফাঁস করেছেন তার উপর নির্ভর করে। কিছু স্মৃতি ওএস দ্বারা পুনরুদ্ধার করা যায় না। প্রক্রিয়াটি প্রস্থান করার পরে বেশিরভাগ ওএসে সর্বাধিক মেমরি স্বয়ংক্রিয়ভাবে পুনরায় দাবি করা হবে।