কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টের মেমোরি লাইফ সাইকেলের বিস্তারিত ব্যাখ্যা


মেমোরি সাইকেল (Memory Cycle)

প্রোগ্রামিং ল্যাঙ্গুয়েজ যেকোনো হোক, মেমোরি সাইকেল প্রায় সব ল্যাঙ্গুয়েজের জন্য একই।

 মেমোরি লাইফ সাইকেলের ৩টি ধাপ

১) মেমোরি অ্যালোকেশন।

২) অ্যালোকেট করা মেমোরি ব্যবহার করা (রিডিং বা রাইটিং)।

৩) অপ্রয়োজনীয় হলে অ্যালোকেট করা মেমোরি রিলিজ করা।

প্রথম এবং শেষ অংশ লো-লেভেল ল্যাঙ্গুয়েজে সরাসরি কানেক্টেড কিন্তু হাই-লেভেল ল্যাঙ্গুয়েজ যেমন জাভাস্ক্রিপ্টে পরোক্ষভাবে কানেক্টেড।

১) জাভাস্ক্রিপ্টে মেমোরি অ্যালোকেশন

জাভাস্ক্রিপ্ট একটি গারবেজ কালেক্টেড ল্যাঙ্গুয়েজ, অর্থাৎ ভেরিয়েবল ডিক্লেয়ার করলে এটি অটোমেটিক্যালি সেগুলোর জন্য মেমোরি অ্যালোকেট করে। আর কোনো রেফারেন্স না থাকলে অ্যালোকেট করা মেমোরি রিলিজ হয়।

উদাহরণ

নিচের উদাহরণে জাভাস্ক্রিপ্ট একটি নাম্বার, একটি স্ট্রিং এবং একটি অবজেক্টের জন্য মেমোরি অ্যালোকেট করেছে।

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

২) অ্যালোকেট করা মান ব্যবহার করা

মান ব্যবহার করা মানে অ্যালোকেট করা মেমোরিতে রিডিং এবং রাইটিং। এটি ভেরিয়েবল বা অবজেক্ট প্রপার্টির মান পড়ে বা লিখে করা যায়, অথবা ফাংশনে আর্গুমেন্ট পাস করে।

৩) অপ্রয়োজনীয় হলে অ্যালোকেট করা মেমোরি রিলিজ করা

অধিকাংশ মেমোরি ম্যানেজমেন্ট সমস্যা এই স্টেজে হয়। কঠিন কাজ হলো বের করা যে অ্যালোকেট করা মেমোরি আর দরকার নেই। এই সমস্যা সমাধানের জন্য অধিকাংশ হাই-লেভেল ল্যাঙ্গুয়েজ একটি সফটওয়্যার এম্বেড করে যা গারবেজ কালেক্টর कहলায়।

গারবেজ কালেক্টরের কাজ হলো মেমোরি অ্যালোকেশন ট্র্যাক করা এবং জানা যে অ্যালোকেট করা মেমোরি আর দরকার নেই, তাই সেটি রিলিজ করা। দুর্ভাগ্যց, এই প্রক্রিয়া শুধু একটি অনুমান কারণ মেমোরির টুকরো দরকার কিনা জানার সাধারণ সমস্যা অनिর্ণেয় (undecidable) — অ্যালগরিদম ট্রেস আউট করতে পারে না।

জাভাস্ক্রিপ্ট গারবেজ কালেক্টর কিছু অ্যালগরিদম ব্যবহার করে যেসব মেমোরি আর ব্যবহৃত হচ্ছে না সেগুলো বের করার জন্য, যেমন রেফারেন্স-কাউন্টিং গারবেজ কালেকশন।


  1. জাভাস্ক্রিপ্টে Promise.finally() কলব্যাক ব্যাখ্যা

  2. জাভাস্ক্রিপ্টে এরর নাম ভ্যালু উদাহরণসহ ব্যাখ্যা

  3. জাভাস্ক্রিপ্টে finally স্টেটমেন্ট উদাহরণসহ ব্যাখ্যা

  4. MS SQL Server আর্কিটেকচার সম্পর্কে জানুন