मैं समस्या निवारण कर रहा हूं जो हमारे कॉन्फ़िगरेशन पृष्ठ में मेमोरी लीक प्रतीत होता है। पृष्ठ का उपयोग हमारी सेवा की कॉन्फ़िगरेशन को बदलने के लिए किया जाता है और स्वास्थ्य निदान भी प्रदर्शित करता है। इसका अर्थ यह है कि हम समय-समय पर कॉन्फ़िगरेशन और इंस्ट्रूमेंटेशन जानकारी के लिए सेवा से पूछताछ कर रहे हैं (आमतौर पर हम 30sec के क्वेरी अंतराल का उपयोग करते हैं, लेकिन समस्या निवारण के लिए मैं 100ms अंतराल पर पूछताछ कर रहा हूं)। हम knockoutjs, datajs, jquery और spinjs पर भरोसा करते हैं।जावास्क्रिप्ट ढेर स्मृति स्थिर है, लेकिन ब्राउजर प्रक्रिया निजी बाइट बढ़ रहे हैं। स्मृति अंतर कहां से आता है?
मुझे पता चला है कि अगर मैं 100 एमएमएस क्वेरी अंतराल पर रातोंरात खुला रहता हूं तो क्रोम ब्राउज़र टैब के लिए निजी बाइट लगभग 50 एमबी से 335 एमबी तक बढ़ता है। मेरे पास इस मुद्दे के साथ चार पृष्ठ हैं, लेकिन मेरे समस्या निवारण प्रयास के दौरान एक पर ध्यान केंद्रित किया गया है। क्रोम का उपयोग करना: // मेमोरी-रीडायरेक्ट/मैं पेज (प्रक्रिया आईडी 26148) मेमोरी देख सकता हूं।
हालांकि, जावास्क्रिप्ट ढेर स्मृति 3.6MB में इसी अवधि में फ्लैट प्रतीत होता है। क्रोम में ढेर प्रोफाइलिंग टूल का उपयोग करके यह दिखाता है कि मेरे सभी ऑब्जेक्ट आवंटन कचरा एकत्रित होते हैं।
ऊपर चित्र में ग्रे आवंटन संकेत मिलता है कि वस्तुओं जीसी द्वारा साफ किया गया है।
स्मृति समय भी स्थिर है।
मैं भी दो जेंटलमैन कैडेट मजबूर किया और पुष्टि की है कि दस्तावेजों, नोड्स और श्रोताओं की संख्या दो जेंटलमैन कैडेट के बीच निरंतर था।
मेरे प्रश्न हैं:
- कहाँ प्रक्रिया स्मृति का उपयोग किया जा रहा है कि जावास्क्रिप्ट ढेर का हिस्सा नहीं है?
- हमारी जावास्क्रिप्ट ढेर मेमोरी को देखते हुए, क्या यह अतिरिक्त स्मृति हमारे जावास्क्रिप्ट कोड के कारण मेमोरी लीक हो सकती है?
सभी मदद के लिए धन्यवाद!
क्या आपके पास कंसोल खुला होने पर आपका नेटवर्क टैब सक्षम है? –
@PaulS प्रत्येक अनुरोध के लिए यह अनुरोध शीर्षलेख, प्रतिक्रिया शीर्षलेख, शरीर इत्यादि की एक प्रति रखेगा। - क्या आप यह कह रहे हैं कि यदि खोला गया तो नेटवर्क टैब समस्या का कारण बन सकता है? मेरे पास क्रोम देव उपकरण सक्षम नहीं थे, जिसमें नेटवर्क टैब भी शामिल था, जिसमें परीक्षण चलाने के दौरान स्मृति उपयोग में वृद्धि हुई थी क्योंकि मुझे डर था कि यह बहुत अधिक मेमोरी का उपयोग करेगा और मुझे झूठे परिणाम देगा। –
क्या आपको कभी इस समस्या का जवाब मिला? हम क्रोम 40 में एक ही व्यवहार देख रहे हैं। – integragreg