मेरे Node.js परियोजना स्मृति लीक पीड़ित है, मैं पहले से ही निर्धारित किया है चरों की पहचान करने, मेरा मतलब है, मैं इस तरह कोड पता है:बंद होने की स्मृति रिसाव memwatch नोड के साथ बंद होने में अशक्त करने के लिए
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
});
कारण होगा मेमोरी लीक, इसलिए मैं इन चर को शून्य पर सेट करने के लिए कुछ कोड जोड़ता हूं;
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
a = null;
b = null;
c = null;
});
लेकिन मैं अभी भी लीक हो गया है, इसलिए मैं memwatch-node
उपयोग करने के लिए क्या मेरी कोड के साथ गलत क्या है यह पता लगाने की कोशिश करते हैं।
और परिणाम दिखाता है कि closure
रिसाव का कारण बनता है, लेकिन लक्षित करने के लिए पर्याप्त निर्दिष्ट नहीं है।
मैं इस
{ what: 'Closure',
'+': 12521,
size: '520.52 kb',
'-': 5118,
size_bytes: 533016 },
तरह JSON मिल गया है और अगर मैं अधिक विशिष्ट विवरण के बारे में जो बंद लीक कर रहा है हो सकता है मैं सोच रहा हूँ।
मैंने सभी बंद करने के लिए नाम असाइन किया है, लेकिन अभी भी काम नहीं कर रहा है।
यह एक वस्तु शाब्दिक है। अपने आप में, "बंद" के साथ इसका कोई लेना-देना नहीं है, इसके गुणों में से एक को स्ट्रिंग 'क्लोजर' पर सेट करने के अलावा, जो '1982 डैटसन चेरी' भी हो सकता है। –
तो किस तरह का ऑब्जेक्ट ऐसा करेगा? मैं अपने आप से "बंद" सेट नहीं करता हूं। – bxshi
हाँ, मैं शर्मिंदा हूं, मैं बेहतर देख सकता हूं कि आपका प्रश्न अब क्या है। मैं memwatch दस्तावेज़ीकरण में रहा हूं लेकिन एक diff रिपोर्ट में 'क्या:' क्लोजर 'अनुभाग का सबूत नहीं मिल सकता है। [यह] (https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/) इंगित करता है कि बंद करने की रिसाव की सूचना दी गई है लेकिन इस तरह से नहीं। यह कुछ उलझन में है। –