मेरे पास Google क्रोम (संस्करण 20.0.1132.47, उबंटू 11.04 64 बिट) में कचरा-संग्रहण के बारे में कोई प्रश्न है।'bound_this' द्वारा संदर्भित उदाहरण केवल कचरा नहीं हैं
ढेर-डंप की तुलना करते हुए और स्मृति-रिसाव की जांच करते समय, मैंने कुछ उदाहरण खोजे, जिन्हें कभी साफ नहीं किया जाता है। आम तौर पर यह व्यवहार एक प्रोग्रामर त्रुटि के लिए नीचे नज़र रखी जा सकता है, लेकिन इस मामले में मैं नहीं बल्कि पता कर रहा हूँ ..
निम्नलिखित स्क्रीनशॉट
उदाहरण 'बच्चे @ 610,739' संदर्भित है पर एक नजर डालें केवल 'bound_this' उदाहरणों से जो बच्चे के उदाहरण के कार्यों से संबंधित हैं। तो मेरी समझ के लिए, बच्चे के उदाहरण को कचरा इकट्ठा किया जाना चाहिए, क्योंकि इसका एकमात्र अन्य संदर्भ इसे पकड़ना है, उदाहरण के लिए बच्चे-उदाहरण ('bound_this' कार्यों के माध्यम से)।
मैं Underscore.js '' bindAll 'उपयोगिता समारोह (underscore.js#bindAll) कि क्रोम की' native_bind 'कार्य करने के लिए नक्शे का उपयोग कर रहा (ECMA Script wiki on bound_this)
मैं कुछ यहाँ स्पष्ट और यदि ऐसा है तो याद आ रही हूँ, किसी को समझा सकता है इन उदाहरणों को जिंदा क्या रख रहा है?
अद्यतन:
इस बीच मैं chrominium में एक ही आवेदन का परीक्षण किया (18.0.1025.168 (डेवलपर बिल्ड 134,367 लिनक्स) उबंटू 11.10) जो इन झूलते उदाहरणों प्रदर्शित नहीं करता है ..
अद्यतन 2 में:
के बाद Esailijas संकेत एक jsfiddle स्निपेट प्रदान करने के लिए, मैंने एक (http://jsfiddle.net/8gSTR/1/) बनाया है जो कि मूल रूप से मैं क्या कर रहा हूं नकल करता हूं। दुर्भाग्यवश इस पहेली को चलाने से मैं अपने आवेदन में अनुभव कर रहा दुर्व्यवहार नहीं दिखाता हूं। एक ढेर-डंप जबकि 'A'-उदाहरणों अभी भी संदर्भित लिया जो उदाहरणों जिंदा रहता है window.o सरणी से संदर्भ के बावजूद समान की तरह लग रहा है, हालांकि:
इस तरह के एक संदर्भ के रूप में मेरे मामले में याद आ रही है (स्क्रीनशॉट 1) मुझे नहीं पता कि क्रोम इन उदाहरणों को मुक्त करने से क्या रोकता है ...
अद्यतन 3:
छुपा गुणों को सक्षम करने के लिए निम्नलिखित loislos सलाह का पालन किया। परिणाम (शाखाओं में से एक के विस्तार के साथ) निम्नलिखित स्क्रीनशॉट में देखा जा सकता है लेकिन यह मुझे और नहीं लेता है।
इसे यहां नहीं देख रहा है http://jsfiddle.net/uGX22/3/। शुरुआत में वे वहां हैं (ढेर 17 लेते हैं।60000 बंद के साथ 32 एमबी), मैं कुछ मिनट इंतजार करता हूं और एक नया स्नैपशॉट लेता हूं और ढेर 6 एमबी पर वापस आ जाता है और बंद हो जाता है। क्या आप इसे पुन: पेश करने के लिए अपने jsfiddle को संशोधित कर सकते हैं? – Esailija
क्या आप हमें वह कोड दिखा सकते हैं जिसके साथ आपने यह स्थिति बनाई है? मैं वास्तव में इसे डीबगर के स्क्रीनशॉट से नहीं प्राप्त करता हूं। – Bergi
मैं इस मुद्दे को पुन: पेश करने के लिए थोड़ा स्निपेट बनाने का प्रयास करूंगा। जिस कोड के साथ मैंने स्थिति बनाई है वह काफी बड़े एसपीए का हिस्सा है, इसलिए निकालना इतना आसान नहीं है। –