If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
जब हम JavaScript में code लिखते हैं, तो हम variables, objects, और functions create करते हैं। इन सब के लिए memory allocation
होती है। लेकिन, जैसे ही ये objects या variables use में नहीं रहते, उनकी memory automatically free
कर दी जाती है।
इस process को Garbage Collection कहा जाता है। इस blog में हम जानेंगे कि JavaScript में Garbage Collection कैसे काम करता है और ये memory को manage करने में कैसे मदद करता है।
JavaScript में memory management का मतलब है कि जब भी हम कोई variable, object या function create करते हैं, JavaScript उसके लिए memory allocate करता है। जब वो memory use में नहीं रहती, तो उसे automatically free कर दिया जाता है, ताकि memory leak न हो। ये काम JavaScript का Garbage Collector करता है।
●●●
Garbage Collection एक automatic process है जो उन objects की memory को free करता है जो अब program में use नहीं हो रहे होते। Garbage Collection का main काम ये ensure करना होता है कि जितनी भी memory allocate की गई है, वो efficiently use हो और unnecessary memory का use न हो।
Mark Phase : सबसे पहले, Garbage Collector पूरे object graph को traverse
करता है और reachable objects को mark करता है। इसका मतलब है कि वो objects जो अभी भी code में use हो रहे हैं, उन्हें mark कर दिया जाता है।
Sweep Phase : जो objects mark नहीं हुए होते, उन्हें remove
कर दिया जाता है और उनकी memory free कर दी जाती है।
function example() {
let user = { name: "Rahul" }; // 'user' के लिए memory allocate होती है
// यहाँ 'user' object का use हो रहा है
user = null; // अब 'user' का कोई reference नहीं है, तो Garbage Collector इसे clean कर देगा
}
example();
इस algorithm में हर object के पास एक count होता है कि कितनी बार उसका reference लिया गया है। अगर कोई object का reference 0 हो जाता है, तो उसे memory से remove कर दिया जाता है।
let obj1 = { name: "John" };
let obj2 = obj1; // Reference count is 2
obj1 = null; // Reference count is 1
obj2 = null; // Reference count is 0, so object is deleted
●●●
Memory leaks तब होते हैं जब memory को allocate तो किया गया हो, लेकिन उसे कभी free नहीं किया जाता। कुछ common scenarios जहाँ memory leaks हो सकते हैं -
Global Variables : Global variables का lifetime तब तक रहता है जब तक browser window open होती है। अगर आपने unnecessary global variables create किए हैं, तो वो memory leak का कारण बन सकते हैं।
var globalVar = "I am global"; // Global variable, जो पूरे lifetime में memory hold करेगा
Uncleared Intervals or Timeouts : अगर आपने intervals या timeouts set किए हैं और उन्हें clear नहीं किया, तो वो भी memory leaks का कारण बन सकते हैं।
function startTimer() {
let timer = setInterval(function() {
console.log("Running...");
}, 1000);
// Memory leak को avoid करने के लिए clear करना ज़रूरी है
clearInterval(timer);
}
startTimer();
Closures : Closures powerful होते हैं, लेकिन अगर उनका सही से use न किया जाए तो ये memory leaks का कारण बन सकते हैं।
function outerFunction() {
let largeData = new Array(10000).fill("Data");
return function innerFunction() {
console.log(largeData);
};
}
let closureFunc = outerFunction(); // largeData memory में hold किया गया है
Minimize Global Variables : कोशिश करें कि जितना हो सके global variables का use न करें।
Remove Event Listeners : Event listeners को memory leak से बचाने के लिए detach करना ज़रूरी है।
Clear Intervals & Timeouts : जब उनका काम पूरा हो जाए, तो उन्हें clear करना न भूलें।
Use of Closures Functions : Closures का सही से उपयोग करें ताकि unnecessary data memory में न रहे।
●●●
JavaScript में Garbage Collection एक बहुत important concept है जो memory management को आसान बनाता है।
हालांकि, ये automatic है, लेकिन developers को भी ध्यान रखना होता है कि उनका code memory leaks create न करे। इस blog में हमने समझा कि Garbage Collection कैसे काम करता है और किन practices को follow करना चाहिए ताकि memory efficient तरीके से use हो सके।
Loading ...