2011-04-17 5 views
19

मैं कैनवास टैग का उपयोग कर एचटीएमएल 5 के लिए एक गेम पर काम कर रहा हूं, और मैंने अपनी आवश्यकताओं को पूरा करने के लिए काफी कोड आधार बनाया है। मैं यह भी सुनिश्चित करना चाहता हूं कि मैं अपनी सभी मेमोरी लीक को कवर कर रहा हूं।क्रोम में जावास्क्रिप्ट प्रोफाइलिंग करते समय मुझे कैसे पता चलेगा कि मैंने मेमोरी लीक को संभाला है?

मैं संदेह मैं इसे सही ढंग से कर रहा हूँ क्योंकि मैं प्रतिक्रिया Chrome के कार्य प्रबंधक से हो रही है और उपकरणों की रूपरेखा सुझाने के लिए मेरी सफाई अंत में कोई प्रभाव नहीं हो रही है लगता है।

यहाँ एक छवि है, तो आप देख सकते हैं कि मैं क्या मतलब है:

enter image description here

तो जैसा कि आप देख सकते हैं, एक बार मैं अपने सफाई स्मृति उपयोग करते हैं जमा और ड्रॉप नहीं है। क्या यह एक स्मृति रिसाव है?

जब मैंने प्रोफाइलर में अपना वेबपेज चलाया और सफाई के पहले और बाद में ढेर की जांच की, तो यह मेरी वस्तुओं के सभी संदर्भों को हटाने के लिए प्रतीत होता है (और वे गायब हो जाते हैं) लेकिन मेरा उपयोग केवल 1.3 किलो छोड़कर केवल कुछ किलोबाइट्स से निकलता है सरणी, तार, और अन्य वस्तुओं के पीछे। क्या यह सब पकड़ना असंभव है या क्या कुछ गलत है?

धन्यवाद।

+0

मुझे संदेह है कि आप जिस मुद्दे का वर्णन कर रहे हैं वह स्मृति लीकिंग से असंबंधित है, लेकिन केवल सुरक्षित पक्ष पर रहने के लिए, आप "स्मृति को साफ" कैसे करते हैं? – Khez

+0

@ खेज़ मेरे प्रत्येक ऑब्जेक्ट में एक नष्ट कार्य है और इसमें वे सभी ऑब्जेक्ट्स को शून्य में सेट करते हैं, और वे किसी भी सरणी को खाली करते हैं, किसी भी डोम संदर्भ को उनके माता-पिता से हटा दिया जाता है और शून्य, आदि पर सेट किया जाता है। –

+0

तब मुझे लगता है क्रोम बस बाद में उपयोग के लिए स्मृति को जीवित रखता है। – Khez

उत्तर

3

प्रोफाइलर विंडो के तल पर एक आइकन है कि एक कचरा है, यह एक जीसी पास बाध्य करेगा कर सकते हैं की तरह लग रहा है।

यह हिट और देखो अगर यह स्मृति के बाकी ऊपर साफ करता है।

यह संभव क्रोम/वी 8 बस नहीं लगता है स्मृति स्थिति काफी खराब चलाने के लिए कचरा संग्रहण की आवश्यकता होती है।

+0

इससे इसे लगभग 1 एमबी तक गिर गया। दुर्भाग्य से अभी भी तारों और सरणी के बहुत सारे हैं जो मुझे नहीं मिल पा रहे हैं। –

1

chrome://memory-redirect/ प्रयास करें (या about:memory, दोनों एक ही जगह पर जाएं)। यह आपको प्रत्येक टैब/आदि द्वारा उपयोग की जाने वाली स्मृति की सटीक मात्रा, साथ ही आईई, ओपेरा, फ़ायरफ़ॉक्स इत्यादि में टैग/आदि द्वारा उपयोग की जाने वाली मेमोरी दिखाएगा यदि आपके पास एक ही समय में खुले हैं। संभावित लीक के लिए आपकी मेमोरी उपयोग को प्रोफाइल करने के लिए ग्राफ़ की तुलना में कच्ची संख्याएं थोड़ा अधिक सहायक होनी चाहिए।

+0

मैंने तब से क्रोम की खोज की है: // कार्य/जो थोड़ा और वास्तविक समय है। – BrianFreud

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