मुझे एप्पल पर विंडो रेत सफारी पर आईई, फ़ायरफ़ॉक्स, क्रोम और सफारी परीक्षण किए गए सभी ब्राउज़रों पर यह मिला है।ब्राउज़र रीफ्रेश कचरा संग्रह नहीं करता
स्पष्ट रूप से, एक ब्राउज़र रीफ्रेश, बैक बटन या फॉरवर्ड लिंक ब्राउज़र नोड्स और जावास्क्रिप्ट चर और ऑब्जेक्ट्स आदि को डंप करना चाहिए। ऐसा लगता है कि यह वेबजीएल का मामला नहीं है। मैंने पहली बार एक जटिल वेबजीएल अनुप्रयोग विकसित करते समय इसे देखा जो लगभग 100 एमबी से 200 एमबी मेमोरी की आवश्यकता है। विकास करते समय, मुझे बहुत सारे रिफ्रेश करना पड़ता है और मेरा कंप्यूटर 5-10 रीफ्रेश के बाद धीमा होना और फ्रीज करना शुरू कर देगा।
कुछ शोध के बाद मुझे एहसास हुआ कि यह नहीं होना चाहिए। मेमोरी रिसाव से स्वीकार्य समाधान पृष्ठ को रीफ्रेश करना है जो सभी जावास्क्रिप्ट ऑब्जेक्ट्स और चर और डोम नोड्स को रिलीज़ करना चाहिए। लेकिन निम्नलिखित छवियों पर एक नज़र डालें:
तो यहां क्या सौदा है? छोटे ऐप्स पर यह ध्यान नहीं दिया जाता है, लेकिन मेरे जैसे बड़े वेबजीएल ऐप्स (orbitingeden.com) के लिए यह एक वास्तविक मुद्दा है और मेरे उपयोगकर्ता यह सोचने जा रहे हैं कि सॉफ्टवेयर वास्तव में संसाधन संसाधनों की तुलना में अधिक है। निम्न छवि इन के रिफ्रेश मेरी उपलब्ध स्मृति के सभी ऊपर gobbling से पता चलता है, तो कचरा संग्रहण काम कर रहा है नहीं और/या जे एस और डोम वस्तुओं जारी नहीं किया जा रहा है:
http://orbitingeden.com/images/big_memory_after.png
किसी एक चाल के लिए मजबूर करने का पता है स्मृति का सही डंप करने के लिए ब्राउज़र? वहां सभी दस्तावेज क्यों गलत हैं?
https://bugs.webkit.org/show_bug.cgi?id=76225 – gman
@gman: यदि आप प्रश्न का उत्तर देते हैं, तो मैं आपको क्रेडिट दूंगा। सारांश: वेबजीएल एक संदर्भ का उपयोग करता है जो डोमेन और टैब द्वारा संरक्षित है, विशिष्ट पृष्ठ (रीफ्रेश) के अप्रासंगिक। नतीजतन, वेबजीएल प्रतिपादन को आवंटित कोई भी स्मृति कचरा संग्रहण के लिए जारी नहीं की जाती है जब तक कि उपयोगकर्ता आधार डोमेन से दूर न हो या टैब बंद कर देता है। एक संभावित फिक्स उस एप्लिकेशन पर निकास बटन जोड़ना होगा जो एक नए डोमेन पर त्वरित रीडायरेक्ट करता है जो सही बैक रीडायरेक्ट करता है। –
बग किसी भी दिन तय किया जाएगा, इसलिए उम्मीद है कि जल्द ही कामकाज की आवश्यकता नहीं होगी। वास्तव में वेबग्लॉग अनुरूपता परीक्षणों (https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/context/context-creation-and-destruction में इसके लिए एक परीक्षण है। एचटीएमएल) – gman