এই প্রশ্নের সংক্ষিপ্ত উত্তর হ'ল এই নির্ধারিত মানগুলির মধ্যে কোনটিই একটি নির্বাহযোগ্য আসলে কত মেমরি ব্যবহার করে তার নির্ভরযোগ্য সূচক নয় এবং এগুলির কোনও মেমরি ফাঁস ডিবাগ করার জন্য সত্যই উপযুক্ত নয়।
প্রাইভেট বাইটগুলি প্রসেস এক্সিকিউটেবল যে পরিমাণ মেমোরির জন্য জিজ্ঞাসা করেছিল তা নির্দেশ করে - অগত্যা যে পরিমাণটি এটি ব্যবহার করছে তা অগত্যা নয় । এগুলি "ব্যক্তিগত" কারণ তারা (সাধারণত) মেমরি-ম্যাপযুক্ত ফাইলগুলি (যেমন ভাগ করা ডিএলএল) বাদ দেয়। তবে - এখানে ধরা আছে - তারা অগত্যা এই ফাইলগুলি দ্বারা বরাদ্দ মেমরি বাদ দেয় না । প্রাইভেট বাইটে পরিবর্তনটি কার্যকর কার্যকর হওয়ার কারণে, বা কোনও লিঙ্কযুক্ত লাইব্রেরির কারণে ছিল কিনা তা বলার উপায় নেই। ব্যক্তিগত বাইট রয়েছে না একচেটিয়াভাবে প্রকৃত মেমরি; এগুলিকে ডিস্কে বা স্ট্যান্ডবাই পৃষ্ঠার তালিকায় পেজ করা যেতে পারে (অর্থাত্ ব্যবহারে আর ব্যবহার হয় না, তবে এখনও পৃষ্ঠায়িত হয় নি)।
ওয়ার্কিং সেট প্রক্রিয়া দ্বারা ব্যবহৃত মোট শারীরিক মেমরি (র্যাম) বোঝায় । তবে, ব্যক্তিগত বাইটগুলির বিপরীতে, এর মধ্যে মেমরি-ম্যাপযুক্ত ফাইল এবং অন্যান্য বিভিন্ন সংস্থান অন্তর্ভুক্ত রয়েছে, তাই এটি ব্যক্তিগত বাইটগুলির চেয়ে আরও কম সঠিক পরিমাপ। এটি একই মান যা টাস্ক ম্যানেজারের "মেম ব্যবহার" এ রিপোর্ট করা হয় এবং সাম্প্রতিক বছরগুলিতে অবিরাম বিভ্রান্তির কারণ হয়ে দাঁড়িয়েছে। ওয়ার্কিং সেটে স্মৃতিটি "শারীরিক" অর্থে যে এটি কোনও পৃষ্ঠা ত্রুটি ছাড়াই সম্বোধন করা যেতে পারে; তবে, স্ট্যান্ডবাই পৃষ্ঠা তালিকা এছাড়াও এখনো স্মৃতিতে শারীরিকভাবে কিন্তু ওয়ার্কিং সেটে প্রতিবেদন করা, এবং এই কারণেই আপনি "মেম ব্যবহার" হঠাৎ ড্রপ যখন আপনি একটি অ্যাপ্লিকেশন কমান দেখতে হতে পারে।
ভার্চুয়াল বাইটস সম্পূর্ণ প্রক্রিয়া দ্বারা দখল করা মোট ভার্চুয়াল ঠিকানা স্থান । এটি ওয়ার্কিং সেটের মতো, এই অর্থে যে এতে মেমরি-ম্যাপযুক্ত ফাইলগুলি (শেয়ারড ডিএলএল) অন্তর্ভুক্ত রয়েছে তবে এটি স্ট্যান্ডবাই তালিকায় থাকা ডেটা এবং ডেটা অন্তর্ভুক্ত করে যা ইতিমধ্যে পেজ আউট হয়ে গেছে এবং কোথাও ডিস্কের একটি পেজফাইলে বসে আছে। ভারী বোঝার অধীনে একটি সিস্টেমে প্রতিটি প্রক্রিয়া দ্বারা ব্যবহৃত মোট ভার্চুয়াল বাইটগুলি মেশিনের প্রকৃত তুলনায় উল্লেখযোগ্য পরিমাণে বেশি মেমরি যুক্ত করবে।
সুতরাং সম্পর্কগুলি হ'ল:
- ব্যক্তিগত অ্যাপ্লিকেশনগুলি যা আপনার অ্যাপ্লিকেশনটি আসলে বরাদ্দ করেছে তা কিন্তু পেজফাইলে ব্যবহার অন্তর্ভুক্ত করে;
- ওয়ার্কিং সেট হ'ল পৃষ্ঠাবিহীন প্রাইভেট বাইট প্লাস মেমরি-ম্যাপযুক্ত ফাইলগুলি;
- ভার্চুয়াল বাইটস হল ওয়ার্কিং সেট প্লাস পৃষ্ঠাযুক্ত ব্যক্তিগত বাইটস এবং স্ট্যান্ডবাই তালিকা।
এখানে আরও একটি সমস্যা আছে; ভাগ করা লাইব্রেরিগুলি যেমন আপনার অ্যাপ্লিকেশন মডিউলের ভিতরে মেমরির বরাদ্দ করতে পারে , আপনার অ্যাপ্লিকেশনটির প্রাইভেট বাইটগুলিতে সম্ভাব্য মিথ্যা ধনাত্মকতার প্রতিবেদন তৈরি করে, তেমনই আপনার অ্যাপ্লিকেশনটি ভাগ করে নেওয়া মডিউলগুলির মধ্যে মেমরি বরাদ্দও করতে পারে এবং মিথ্যা নেতিবাচক দিকে পরিচালিত করে । তার অর্থ আপনার অ্যাপ্লিকেশনের পক্ষে মেমরি ফাঁস হওয়া সম্ভবত সম্ভব যা প্রাইভেট বাইটে কখনই প্রকাশ পায় না। অসম্ভব, তবে সম্ভব।
আপনার এক্সিকিউটেবল যে পরিমাণ মেমরি ব্যবহার করছেন তা মেমরির ফাঁসের জন্য সম্ভাব্য প্রার্থীদের একটি তালিকা সংকুচিত করতে সহায়তা করতে ব্যবহার করা যেতে পারে তার প্রাইভেট বাইটস একটি যুক্তিসঙ্গত অনুমান ; আপনি যদি ক্রমাগত এবং অবিরামভাবে সংখ্যাটি ক্রমবর্ধমান এবং ক্রমবর্ধমান দেখতে পান তবে আপনি এই প্রক্রিয়াটি ফাঁসের জন্য পরীক্ষা করতে চান। এটি অবশ্য প্রমাণ করতে পারে না যে ফাঁস আছে বা নেই।
উইন্ডোজে মেমরি ফাঁস সনাক্ত / সংশোধন করার জন্য সবচেয়ে কার্যকর সরঞ্জামগুলির মধ্যে একটি হ'ল আসলে ভিজ্যুয়াল স্টুডিও (লিঙ্কটি পৃষ্ঠাগুলিতে মেমরি ফাঁসের জন্য ভিএস ব্যবহার করে থাকে, পণ্য পৃষ্ঠা নয়)। যুক্তিযুক্ত শুদ্ধি আরেকটি সম্ভাবনা। মাইক্রোসফ্টের এই বিষয়ে আরও সাধারণ সেরা অনুশীলনের দলিল রয়েছে। এই আগের প্রশ্নে আরও সরঞ্জাম তালিকাভুক্ত রয়েছে ।
আমি আশা করি এটি কিছু জিনিস পরিষ্কার হয়ে যায়! ডিবাগিংয়ের জন্য মেমরি ফুটোটি ট্র্যাক করা সবচেয়ে কঠিন কাজ। শুভকামনা।