मैं एंड्रॉइड के लिए एक गेम पर काम कर रहा हूं और इसे अपने एन 1 पर डिबग कर रहा हूं। प्रदर्शन पहली बार पैची था। मैंने कचरा संग्रह को रोकने के लिए सभी आवंटन को साफ करने पर काम किया। यह बहुत ही बेहतर चीजें हैं, लेकिन मैंने अभी भी कुछ कचरा संग्रह देखा है जो एनीमेशन में बहुत ही कम विराम उत्पन्न करता है।एंड्रॉइड गेम डेवलपमेंट एंड कचरा कलेक्शन
थोड़ी देर के लिए अपने बालों को खींचने के बाद, मैंने देखा कि कचरा संग्रह (GC_FOR_MALLOC) कर रहे प्रक्रिया आईडी मेरी प्रक्रिया आईडी नहीं थीं। प्रोसेस आईडी "एंड्रॉइड सिस्टम" और android.process.acore से संबंधित थी (बाजार से "एंड्रॉइड सिस्टम इन्फो" ऐप का उपयोग करके निर्धारित)। Acore प्रक्रिया डिजिटल घड़ी नामक डेस्कटॉप विजेट से जुड़ा हुआ था। मैंने विजेट को अनइंस्टॉल किया और लगभग किसी भी विराम के बिना पूरे गेम के माध्यम से इसे बनाया। "एंड्रॉइड सिस्टम" के लिए जीसी के लिए एक बहुत ही संक्षिप्त विराम था।
लंबे विवरण के लिए क्षमा करें, लेकिन अब मेरे सवालों के लिए:
- कैसे यह है कि अन्य खेलों में कभी-कभी (डेवलपर के नियंत्रण से बाहर कुछ) सिस्टम प्रक्रिया के जी सी की वजह से रुक जाता है नहीं है?
- पहले प्रश्न की पंक्तियों के साथ, मैं जीसी के कारण एक अलग एप्लिकेशन से कैसे निपट सकता हूं जो मेरी प्रक्रिया को धीमा कर देता है और मेरे गेम में हिचकी का कारण बनता है?
मैं बस लगता है कि कुछ के बाद से अन्य खेलों इस समस्या नहीं है मुझे याद आ रही है की तरह।
धन्यवाद
यदि आपका ऐप कि कचरा कलेक्टर के प्रति संवेदनशील है, आप गलत कर रहे हैं। – Falmarri
गेम dev विशिष्ट प्रश्नों के लिए http://gamedev.stackexchange.com/ पर आपको बेहतर भाग्य हो सकता है। मुझे यकीन नहीं है कि इसका एक आसान जवाब है। आप जीसी को रोक नहीं सकते हैं, बस उन्हें कम करें। 2.3 समवर्ती जीसी शामिल है, लेकिन यदि आप पहले के प्लेटफॉर्म को लक्षित करना चाहते हैं तो इससे आपको बहुत मदद नहीं मिलती है। –