मुझे संभावित मेमोरी लीक खोजने का प्रयास करने में कठिनाई हो रही है। मुझे एक गतिविधि मिली है जो पृष्ठभूमि में कुछ भारी काम कर रही है।एंड्रॉइड स्टूडियो कचरा कलेक्टर कैसे शुरू करता है और यह कैसे काम करता है?
कुछ कार्यों के बाद, ऐप बहुत अधिक स्मृति का उपभोग करता है। ऐसा लगता है कि यह ठीक से साफ नहीं किया जाता है।
अगर मैं काम जो गतिविधि कर रही है चलाने के लिए, अधिक से अधिक स्मृति आवंटित होता है,
यह डिफ़ॉल्ट राज्य में गतिविधि है। कुछ काम के बाद
पहले तो मुझे लगा कि यह, एक मेमोरी मुद्दा होना चाहिए जीसी कारण नहीं ठीक से मेमोरी खाली कर सकते हैं। जहां तक मुझे पता है, ऑब्जेक्ट्स के लिए कोई संदर्भ नहीं छोड़ा गया है, तो जीसी स्मृति को मुक्त कर सकता है। क्या वो सही है?
अब आता हिस्सा जो मुझे confuses:
अगर मैं एंड्रॉयड स्टूडियो से जीसी चलाने के लिए, स्मृति ठीक तरह से साफ किया जाता है और मेरे गतिविधि कभी नहीं बंद कर दिया जाता है। जब मुझे बहुत मेमोरी आवंटित की जाती है तो मुझे बस एंड्रॉइड स्टूडियो जीसी का उपयोग करना होगा।
यह एक मेरा मतलब है:
सामान्य में सवाल यह है:
क्यों एंड्रॉयड स्टूडियो जीसी ठीक से स्मृति को साफ कर सकते हैं और क्यों नहीं करता है यह स्वचालित एंड्रॉइड जीसी के साथ ठीक से काम करता है?
मुझे पता है कि यह एक सुंदर सामान्य प्रश्न है। मैं सिर्फ जानना चाहता हूं, अगर विभिन्न प्रकार के कचरे के संग्रह या ऐसा कुछ है।
System.gc();
पर कॉल करने से स्मृति को ठीक से साफ नहीं किया जाता है।
अतिरिक्त जानकारी:
मोटो जी 2 जनरल
एंड्रॉयड 5.0.2।
"कभी कभी, गतिविधि या एप्लिकेशन बंद कर देता है। मैंने सोचा कि यह स्मृति समस्याओं की वजह से हो सकता है।" यदि ऐप बी/सी मर जाता है तो यह स्मृति से बाहर हो जाता है, आपको आउट-ऑफ-मेमोरी अपवाद मिलेगा जिसे आप स्पष्ट रूप से लॉगकैट में देख सकते हैं। मेरा झुकाव यह है कि आपका ऐप किसी अन्य कारण से दुर्घटनाग्रस्त हो रहा है। क्रैश कारण क्या है यह देखने के लिए लॉगकैट को देखने का प्रयास करें। – Shmuel
समवर्ती जीसी केवल ध्यान देने योग्य विरामों का कारण नहीं बनने के लिए आंशिक संग्रह करता है। स्पष्ट जीसी जैसे स्टूडियो द्वारा ट्रिगर किया गया एक पूर्ण जीसी स्वीप करता है। कुछ पढ़ना: https://source.android.com/devices/tech/dalvik/gc-debug.html – laalto
@Shmuel अपवाद नहीं हैं। चेतावनी भी नहीं। – FlanschiFox