2016-02-11 3 views
7

मैं एक सेवा => पृष्ठभूमि सेवा शुरू कर रहा हूं, और "नए थ्रेड" में फ़ाइलों के लिए चेक शुरू कर रहा हूं, लॉग में मुझे निम्नलिखित मिल रहा है, सेवा/ऐप रोक दिया जाता है।I/art प्राप्त करना: स्पष्ट समवर्ती मार्क स्वीप जीसी मुक्त

प्रवेश I/art: Explicit concurrent mark sweep GC freed 25935(1686KB) AllocSpace objects, 13(903KB) LOS objects, 39% free, 13MB/22MB, paused 649us total 43.569ms

यह सिर्फ एसडी कार्ड में MyData में फ़ाइलों को, जो तस्वीरें (लगभग 20 तस्वीरें) का एक समूह शामिल के लिए एक स्कैन है।

** स्कैन = चित्रों के नाम प्राप्त करना और उन्हें स्ट्रिंग में सहेजना।

उत्तर

15

इसका मतलब यह है कि कचरा कलेक्टर अपना काम कर रहा है और स्मृति को मुक्त कर रहा है।

यदि आप इसे अक्सर (या लगातार) देख रहे हैं, तो आप संभवतः कई ऑब्जेक्ट आवंटित कर रहे हैं। एक आम कारण तो जैसे एक पाश के भीतर कई (या कुछ बड़ी) वस्तुओं का आवंटन किया गया है:

for (int i = 0; i < 100; i++) { 
    Bitmap bmp = Bitmap.create(100, 100, Bitmap.Config.ARGB_4444); 
} 

हर बार जब हम इस पाश मारा, हम एक सौ नए बिटमैप ऑब्जेक्ट का आवंटन।

जीसी स्वीप्स को रोकने का सबसे अच्छा तरीका वस्तुओं को आवंटित नहीं करना है। बेशक आपको जावा में ऑब्जेक्ट आवंटित करना होगा, इसलिए आपको यह सुनिश्चित करना होगा कि आप अनावश्यक रूप से आवंटित नहीं कर रहे हैं।

Here is one of many YouTube videos कि Google ने जीसी कार्यक्रमों से बचने और स्मृति को सही तरीके से प्रबंधित करने के सुझावों के साथ रिलीज किया है।

+1

मुझे इस समस्या में एक ऐप के साथ समस्या है जो लगातार 30 बार काम करता है और कोड में कुछ भी नहीं बदला जाता है, मुझे सिर्फ एक ग्रे स्क्रीन मिलती है और यह अनंत काल तक ऐसा करती रहती है। एंड्रॉइड स्टूडियो 'क्रैप – ObedMarsh

+0

एंड्रॉइड स्टूडियो एक आईडीई है, इसका आपके डिवाइस पर चल रहे कोड से कोई लेना देना नहीं है। ऐसा लगता है कि आपके पास एक लूप है जो असीम रूप से चल रहा है। –

+0

जब मैं एक नया एमुलेटर बनाता हूं तो कोड ठीक काम करता है, फिर कुछ समय बाद, यदि वर्तमान में कोड में कोई लूप नहीं है तो शुरू होता है। यह एक मूल नोट ऐप है जो SQLite का उपयोग करता है, डेटाबेस एटीएम में 3 नोट्स की तरह है। ऐसा लगता है जब मैं किसी कारण से कर्सर पर फिर से प्रयास करने की कोशिश करता हूं। – ObedMarsh

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