মেমরি চক্র
প্রোগ্রামিং ভাষা নির্বিশেষে, যে কোনো প্রোগ্রামিং ভাষার জন্য মেমরি চক্র প্রায় একই।
একটি স্মৃতি জীবন চক্রের 3টি ধাপ আছে
1) মেমরির বরাদ্দ।
2) বরাদ্দ করা মেমরি ব্যবহার করুন (পড়া বা লেখা)
3) অপ্রয়োজনীয় হলে বরাদ্দ করা মেমরি ছেড়ে দিন।
প্রথম এবং শেষ অংশগুলি নিম্ন-স্তরের ভাষাগুলিতে সরাসরি সংযুক্ত কিন্তু জাভাস্ক্রিপ্টের মতো উচ্চ-স্তরের ভাষাগুলিতে পরোক্ষভাবে সংযুক্ত৷
1) জাভাস্ক্রিপ্টে মেমরির বরাদ্দ
জাভাস্ক্রিপ্টকে আবর্জনা সংগ্রহ করা ভাষা বলা হয়, অর্থাৎ যখন ভেরিয়েবল ঘোষণা করা হয়, তখন এটি স্বয়ংক্রিয়ভাবে তাদের জন্য মেমরি বরাদ্দ করবে। ঘোষিত ভেরিয়েবলের জন্য আর কোন রেফারেন্স না থাকলে, বরাদ্দ করা মেমরি প্রকাশ করা হবে।
উদাহরণ
নিম্নলিখিত উদাহরণে জাভাস্ক্রিপ্ট একটি সংখ্যা, একটি স্ট্রিং এবং একটি বস্তুর জন্য মেমরি বরাদ্দ করেছে৷
৷var n = 989; // allocates memory for a number var s = 'qwerty'; // allocates memory for a string var o = { a: 1, b: null }; // allocates memory for an object and contained values
2) বরাদ্দ করা মান ব্যবহার করা
মূলত মান ব্যবহার করার অর্থ হল বরাদ্দ করা মেমরিতে পড়া এবং লেখা৷ এটি একটি ভেরিয়েবল বা একটি বস্তুর সম্পত্তির মান পড়া বা লেখার মাধ্যমে বা এমনকি একটি ফাংশনে একটি আর্গুমেন্ট পাস করার মাধ্যমে করা যেতে পারে৷
3) অপ্রয়োজনীয় হলে বরাদ্দ করা মেমরি ছেড়ে দিন
মেমরি পরিচালনার বেশিরভাগ সমস্যা এই পর্যায়ে আসবে। এখানে কঠিন কাজ হল কখন বরাদ্দ করা মেমরির আর প্রয়োজন হবে না তা খুঁজে বের করা। এই সমস্যাটি বাছাই করার জন্য বেশিরভাগ উচ্চ স্তরের ভাষাগুলি আবর্জনা সংগ্রহকারী নামে একটি সফ্টওয়্যার এম্বেড করে।
আবর্জনা সংগ্রাহকের কাজ হল মেমরি বরাদ্দের ট্র্যাক করা এবং কখন বরাদ্দ করা মেমরির আর প্রয়োজন নেই তা খুঁজে বের করা যাতে এটি প্রকাশ করা যায়৷ দুর্ভাগ্যবশত এই প্রক্রিয়াটি কেবল একটি অনুমান কারণ কিছু মেমরির প্রয়োজন আছে কিনা তা জানার সাধারণ সমস্যাটি সিদ্ধান্তহীন। (অ্যালগরিদম খুঁজে বের করতে পারে না)
জাভাস্ক্রিপ্ট আবর্জনা সংগ্রাহক কিছু অ্যালগরিদম ব্যবহার করে যেমন রেফারেন্স-গণনা আবর্জনা সংগ্রহের মেমরিটি বের করতে যা আর ব্যবহার করা হয় না।