16

मैं अब आईओएस पर हूं, लेकिन सवाल एंड्रॉइड पर भी लागू होता है। मैं एक्सकोड में मेमोरी ग्राफ देख रहा हूं, और जब भी यह 240 एमबी के आसपास हिट करता है तो मेरा ऐप दुर्घटनाग्रस्त हो जाता है, मेरा मानना ​​है कि आईओएस इसे मार रहा है क्योंकि यह बहुत अधिक स्मृति ले रहा है।आप कॉर्डोवा में मेमोरी उपयोग को कैसे नियंत्रित कर सकते हैं?

मैं ऐप में पृष्ठों के बीच नेविगेट करके इसे लगातार क्रैश कर सकता हूं। (यह एक एसपीए, क्लाइंट-साइड एचटीएमएल प्रतिपादन है।) अगर मैं एक मिनट के लिए नेविगेट करना बंद कर देता हूं, तो स्मृति 140 एमबी तक गिर जाएगी।

enter image description here

इस मामले में, नेविगेशन बंद करके के बाद, स्मृति अपने आप पर कमी नहीं करता:

यहाँ OSX क्रोम में एक ही पृष्ठ है। इसके बजाय, ग्राफ के अंत में चट्टान मुझे कचरा संग्रह बटन मार रहा है (इसे 170 एमबी से 60 एमबी तक ले जाता है)।

मैं अपने ऐप को क्रैश होने से कैसे रोकूं?

  1. क्या कचरा संग्रह बटन के बराबर है जिसे मैं कॉर्डोवा के अंदर कॉल कर सकता हूं?
  2. क्या मैं अपने ऐप को एक विशेष बड़ी मेमोरी भत्ता देने के लिए आईओएस प्राप्त कर सकता हूं?
  3. यदि उपयोगकर्ता एक मिनट अवधि के भीतर पृष्ठों के बीच X गुणा करता है, तो मैं एक टाइम-आउट स्क्रीन डाल सकता हूं जो उन्हें बताता है कि वे अगले मिनट के लिए ऐप का उपयोग नहीं कर सकते हैं जबकि कचरा संग्रह XD
  4. किसी भी तरीके से ढलान पर मेमोरी उपयोग को कम करें, क्योंकि जेएस एचटीएमएल प्रस्तुत कर रहा है?

इसके अलावा, यहां HTML नोड्स के साथ क्रोम ग्राफ है - आनुपातिक रूप से बढ़ोतरी करें लेकिन नोड्स उसी स्तर पर कचरा संग्रह पर रहते हैं।

enter image description here

+0

क्या आपने इसे आईओएस पर विशेष रूप से लीक के लिए प्रोफाइल किया था? जब आप सोचते हैं कि स्मृति के भूख के बाद ऐप्स के लिए क्या छोड़ा गया है, तो यह बहुत मेमोरी की तरह लगता है आईओएस डिवाइस में मांस का पाउंड लेता है। और मैं आपको 'मूल' ऐप्स के लिए भी अतिरिक्त स्मृति आवंटित करने के लिए आईओएस प्राप्त करने का कोई तरीका नहीं जानता। – YvesLeBorg

+0

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन मेरा मानना ​​है कि UIWebView में सबकुछ हो रहा है, devtools में प्रोफाइलिंग उन चीजों को पकड़ लेना चाहिए जो आईओएस प्रोफाइलिंग पकड़ लेते हैं? और चूंकि कचरा संग्रह के बाद ढेर आधार रेखा पर चला गया, इसका मतलब है कि वहां रिसाव नहीं हैं? – Loren

+1

दुह, मेरा बुरा। मैंने देशी आईओएस कोड में देखा, और कुछ अजीब पाया। जिथूब पर एक प्रश्न पोस्ट करना, जवाब के साथ वापस आ जाएगा। – YvesLeBorg

उत्तर

4

आप WKWebView प्लगइन, जो कभी कभी आईओएस स्मृति उपयोग को कम कर सकते हैं Cordova एप्लिकेशन के लिए उपयोग करने का प्रयास कर सकता है।

+0

यह सुनकर खुशी हुई कि यह बहुत अच्छा काम करता है! यह एक शानदार सुधार है। – Reubend

+0

असल में, मुझे लगता है कि WKWebView स्मृति को XCode मेमोरी चार्ट [1] में शामिल नहीं किया जाना चाहिए, क्योंकि मुझे अभी भी स्मृति चेतावनियां और क्रैशिंग मिलती है। हालांकि मुझे लगता है कि कम अक्सर। [1] https://github.com/practicalmeteor/meteor-wkwebview/issues/1#issuecomment-130521832 – Loren

+0

@Reubend क्या एंड्रॉइड के लिए ऐसा कुछ है? – VaTo

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