2015-07-03 7 views
6

सी में आप स्पष्ट रूप से ढेर पर स्मृति के लिए पूछते हैं और प्रबंधित करते हैं, इसलिए ढेर के साथ बातचीत अच्छी तरह से परिभाषित/स्पष्ट है। Node.js में आप इसके बारे में कैसे तर्क करते हैं?नोड.जेएस में, ढेर पर डेटा कब संग्रहीत किया जाता है?

उप सवाल:

  • जहां/कैसे काम करता है जमा हो जाती है?
  • क्या कुछ वस्तुएं/प्राइमेटिव हैं जो हमेशा ढेर पर संग्रहित होती हैं? (उदा। बफर)
  • क्या डेटा ढेर से ढेर तक माइग्रेट करता है? कब?

इस विषय पर अच्छे संसाधनों के संदर्भों की भी सराहना की जाएगी, धन्यवाद।

+0

इस का उत्तर निश्चित रूप से विकास के दौरान संभव मेमोरी लीक का पता लगाने में सहायक होगा। अच्छा प्रश्न। –

उत्तर

0

आपको ढेर बनाम ढेर और न ही स्मृति मुक्त करने की परवाह नहीं है। यह स्वचालित रूप से होता है क्योंकि Node.js एक सटीक ट्रेसिंग कचरा कलेक्टर प्रदान करता है। कुछ डेटा जीसी ढेर में संग्रहीत किया जाता है। कुछ डेटा ढेर पर है। आप आम तौर पर नहीं बता सकते क्योंकि यह रनटाइम पर जेआईटी-कंपाइलर द्वारा किए गए अनुकूलन पर निर्भर करता है। प्रोफाइलिंग टूल एप्लिकेशन-विशिष्ट अंतर्दृष्टि प्रदान कर सकते हैं।

स्मृति के अलावा अन्य संसाधन (उदा फ़ाइलें और सॉकेट) के रूप में, finally का उपयोग करें:

var file = open(…); 
try { 
    … 
} finally { 
    close(file); 
} 
+0

मुझे लगता है कि आप क्या कहना चाहते हैं "आपको ** ** स्टैक बनाम ढेर के बारे में परवाह नहीं करना चाहिए" ... जाहिर है कुछ लोग परवाह करते हैं, अन्यथा यह कोई प्रश्न नहीं होगा। –

+0

@ राइटफोल्ड मैं विकास के दौरान इसे समझने/स्वीकार करने के लिए इन निर्णयों को बनाने के बारे में सोचने के बारे में सोचने में अधिक रुचि रखता हूं। जाहिर है आप इसे ब्लैक बॉक्स के रूप में देख सकते हैं, लेकिन मुझे लगता है कि इसकी समझ अधिकांश Node.js डेवलपर्स के लिए उपयोगी होनी चाहिए। –

संबंधित मुद्दे