WeakMap এবং WeakSet এর ব্যবহার এবং সুবিধা

WeakMap এবং WeakSet - জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

335

ES6 (ECMAScript 2015) এ WeakMap এবং WeakSet নামক দুটি নতুন ডেটা স্ট্রাকচার যুক্ত হয়েছে। এগুলি Map এবং Set এর মতোই কাজ করে, তবে তাদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে। বিশেষত, WeakMap এবং WeakSet অবজেক্টগুলিকে স্টোর করার সময় garbage collection এর জন্য কিছু অতিরিক্ত সুবিধা প্রদান করে, যার ফলে মেমরি ব্যবস্থাপনা আরও দক্ষ হয়।


WeakMap কী?

WeakMap হলো একটি বিশেষ ধরনের Map (অর্থাৎ key-value জোড়া সংরক্ষণের জন্য একটি ডেটা স্ট্রাকচার), যেখানে শুধুমাত্র অবজেক্টগুলোই key হিসেবে ব্যবহার করা যায়। একটি WeakMap তে রাখা কোনো key-value জোড়া যখন আর কোনো অংশে রেফারেন্স করা হয় না (অর্থাৎ key অবজেক্টটি garbage collection এর মাধ্যমে মুছে ফেলা হয়), তখন সেই key-value জোড়া আপনি অ্যাক্সেস করতে পারবেন না, এবং এটি মেমরি থেকে সাফ হয়ে যাবে। এটি মেমরি ব্যবস্থাপনা আরও দক্ষ করে তোলে।

WeakMap এর সিনট্যাক্স

const weakMap = new WeakMap();

let obj1 = { name: 'John' };
let obj2 = { name: 'Alice' };

weakMap.set(obj1, 'Developer');
weakMap.set(obj2, 'Designer');

console.log(weakMap.get(obj1)); // 'Developer'
console.log(weakMap.get(obj2)); // 'Designer'

// যদি obj1 আর কোথাও রেফারেন্স না হয়
obj1 = null;  // obj1 তে আর কোনো রেফারেন্স না থাকলে

// WeakMap এ obj1 এর সাথে সম্পর্কিত key-value জোড়া মুছে যাবে (garbage collection)

এখানে, obj1 এবং obj2 হলো অবজেক্ট, যা WeakMap এর key হিসেবে ব্যবহৃত হয়েছে। যখন obj1 কে null করা হয়, তখন WeakMap এর মধ্যে obj1 এর সাথে সম্পর্কিত key-value জোড়া মুছে যায়।

WeakMap এর সুবিধা

  1. Garbage Collection: যখন key অবজেক্টটি আর ব্যবহৃত হয় না, তখন WeakMap স্বয়ংক্রিয়ভাবে ওই entry মুছে দেয়, মেমরি ব্যবস্থাপনাকে আরও উন্নত করে।
  2. Key হিসেবে শুধুমাত্র অবজেক্ট: WeakMap তে primitive values (যেমন string, number ইত্যাদি) key হিসেবে ব্যবহার করা যায় না, শুধুমাত্র অবজেক্টই key হিসেবে ব্যবহার করা সম্ভব।
  3. Performance: অন্যান্য মানের তুলনায় WeakMap তে কম মেমরি ব্যবহার হয় কারণ এটি key-value জোড়া অবজেক্টগুলি গ্যারেজ কালেকশন হলে স্বয়ংক্রিয়ভাবে ক্লিন আপ করে।

WeakSet কী?

WeakSet হলো একটি সেট (set) যা শুধুমাত্র অবজেক্টগুলো সংরক্ষণ করতে পারে। এটি সাধারণ Set এর মতো কাজ করে, কিন্তু এর মধ্যে রাখা কোনো অবজেক্ট যখন আর ব্যবহৃত হয় না, তখন সেট থেকে সেই অবজেক্টটি সরিয়ে ফেলা হয় এবং এটি garbage collection এর জন্য প্রস্তুত হয়। WeakSet মূলত এমন অবজেক্টগুলির জন্য ব্যবহৃত হয় যা আপনি "unique" রাখতে চান এবং যার মেমরি ব্যবস্থাপনা স্বয়ংক্রিয়ভাবে করতে চান।

WeakSet এর সিনট্যাক্স

const weakSet = new WeakSet();

let obj1 = { name: 'John' };
let obj2 = { name: 'Alice' };

weakSet.add(obj1);
weakSet.add(obj2);

console.log(weakSet.has(obj1)); // true
console.log(weakSet.has(obj2)); // true

// যদি obj1 আর কোথাও রেফারেন্স না হয়
obj1 = null;  // obj1 তে আর কোনো রেফারেন্স না থাকলে

// WeakSet থেকে obj1 মুছে যাবে (garbage collection)

এখানে, obj1 এবং obj2 দুটি অবজেক্ট WeakSet এ যোগ করা হয়েছে। যখন obj1 কে null করা হয়, তখন সেটটি থেকে obj1 মুছে যাবে।

WeakSet এর সুবিধা

  1. Garbage Collection: যখন একটি অবজেক্ট WeakSet এর মধ্যে আর ব্যবহৃত না হয়, তখন সেটি মেমরি থেকে মুছে যায়।
  2. Unique Objects: WeakSet একটি কনটেইনার হিসেবে কাজ করে যেখানে শুধুমাত্র অবজেক্টগুলো রাখার অনুমতি থাকে এবং প্রতিটি অবজেক্টের একটাই ইনস্ট্যান্স রাখা হয় (duplicate অবজেক্ট রাখা যায় না)।
  3. Memory Efficiency: মেমরি ব্যবস্থাপনার জন্য এটি অনেক উপকারী, কারণ WeakSet এর মাধ্যমে রাখা অবজেক্টগুলি তখনই মুছে যাবে, যখন আর কোনো রেফারেন্স থাকবে না।

WeakMap এবং WeakSet এর মধ্যে পার্থক্য

বৈশিষ্ট্যWeakMapWeakSet
Key-Value Pairহ্যাঁ, WeakMap key-value জোড়া সংরক্ষণ করেনা, WeakSet শুধুমাত্র অবজেক্ট সংরক্ষণ করে
Key Typeশুধুমাত্র অবজেক্ট (objects)শুধুমাত্র অবজেক্ট (objects)
Garbage Collectionkey-value জোড়া মুছে যায় যখন key আর রেফারেন্স থাকে নাঅবজেক্ট মুছে যায় যখন সেটের বাইরে কোনো রেফারেন্স থাকে না
Usageঅবজেক্টের সাথে সম্পর্কিত ডেটা সংরক্ষণ করতে ব্যবহৃত হয়ইউনিক অবজেক্টগুলো সংরক্ষণ করার জন্য ব্যবহৃত হয়

WeakMap এবং WeakSet এডভান্সড ডেটা স্ট্রাকচার যা garbage collection ব্যবস্থাপনা করে এবং মেমরি ব্যবস্থাপনায় কার্যকরী সহায়ক হতে পারে। এগুলি যখন আপনি ডাইনামিকভাবে অবজেক্ট এবং তার সাথে সম্পর্কিত ডেটা বা অবজেক্টের ইউনিক অবস্থান রাখতে চান, তখন ব্যবহৃত হয়। WeakMap এবং WeakSet সাধারণত উচ্চ পারফরম্যান্স এবং মেমরি ব্যবস্থাপনায় সহায়ক হতে পারে, বিশেষত বড় অ্যাপ্লিকেশনগুলির জন্য।

Content added By
Promotion

Are you sure to start over?

Loading...