2010-05-23 4 views
14

मैं एक एंड्रॉइड गेम लिखने की सोच रहा हूं, कड़ी मेहनत से मैं एंड्रॉइड डिवाइस का स्वामित्व नहीं लेता हूं। आप में से जिनके पास डिवाइस है, एम्यूलेटर पर प्रदर्शन वास्तविक डिवाइस प्रदर्शन से कैसे संबंधित है? मैं विशेष रूप से ग्राफिक्स से संबंधित कार्यों में रुचि रखते हैं।एंड्रॉइड एमुलेटर प्रदर्शन वास्तविक डिवाइस प्रदर्शन से तुलना कैसे करता है?

यह स्पष्ट रूप से एमुलेटर चलाने वाली मशीन और प्रश्न में विशिष्ट डिवाइस दोनों पर निर्भर करता है, लेकिन मैं यहां किसी न किसी संख्या की बात कर रहा हूं।

यह प्रश्न duplicate है, लेकिन चूंकि यह पोस्ट बहुत पुराना है, मुझे लगा कि अब तक यह अप्रासंगिक है।

उत्तर

13

आम तौर पर, एमुलेटर CPU और GPU कार्यों में किसी डिवाइस की तुलना में बहुत धीमी है। यही कारण है कि कम से कम दो कारणों के लिए है:

  1. एमुलेटर चल रहा है एआरएम opcodes, उन्हें बराबर 86 निर्देश है, जो धीमी है में परिवर्तित करने
  2. डिवाइस (आमतौर पर), ग्राफिक्स त्वरक है, जबकि नकल करते वातावरण नहीं है, जो कुछ के बावजूद आपके पास एमुलेटर

चीजों को परिप्रेक्ष्य में रखने के लिए, मेरे इंटेल क्वाड-कोर 2.66GHz पर एक अच्छा ग्राफिक्स कार्ड के साथ मेरा एंड्रॉइड काम करता है। उन उपकरणों के लिए जो डिवाइस पर ठीक काम करते हैं, मैं कभी-कभी उन्हें एमुलेटर में वापस खेलने के लिए प्राप्त कर सकता हूं।

एमुलेटर एक डिवाइस से तेज़ है, हालांकि, "डिस्क" I/O पर। जब आप एमुलेटर पर "फ्लैश" लिखते हैं, तो आप एक डिस्क छवि फ़ाइल पर लिख रहे हैं जो शायद एक नियमित हार्ड ड्राइव पर रहता है, मानते हुए कि आप एक एसएसडी का उपयोग नहीं कर रहे हैं। वास्तव में एक डिवाइस पर फ्लैश करने के लिए लिखना बड़े पैमाने पर धीमा हो सकता है - पिछले सप्ताह के Google I | O 2010 सम्मेलन में ब्रैड फिट्जपैट्रिक ने फ़्लैश करने के लिए एक बाइट लिखने के लिए 200ms तक की स्पाइक्स का हवाला दिया। और, फ्लैश भरने के रूप में एंड्रॉइड, फ्लैश, और yaffs2 फाइल सिस्टम का संयोजन स्पष्ट रूप से फ्लैश I/O पर धीरे-धीरे धीमे होने का कारण बनता है। इसलिए, उनकी सिफारिश करना था फ्लैश मुख्य अनुप्रयोग थ्रेड के बजाय पृष्ठभूमि थ्रेड में लिखता है, जहां यह यूआई को जोड़ सकता है और "जंकी" ऐप का नेतृत्व कर सकता है।

(जाहिरा तौर पर, "janky" एक तकनीकी शब्द

Btw, जब यह ऑनलाइन दिखाता है, निश्चित रूप से यूट्यूब पर ब्राड की प्रस्तुति देखने के है ... :-)। कभी-कभी इसका पालन करना मुश्किल हो सकता है, क्योंकि उसने बहुत जल्दी बात की थी, लेकिन यह प्रदर्शन से संबंधित उपयोगी टिड्बिट से भरा था।

+0

धन्यवाद, यह उपयोगी जानकारी है। एक ही मुद्दे पर, क्या एम्यूलेटर एक ही वीएम का उपयोग डिवाइस के रूप में करता है? विशेष रूप से, क्या मुझे समान जीसी गतिविधि की उम्मीद करनी चाहिए? – uj2

+0

यदि "वीएम" से आपका मतलब जावा में लिखे गए ऐप्स चलाने के लिए Dalvik VM है, तो हाँ। जीसी गतिविधि के संदर्भ में, संभावित अंतर का एकमात्र स्रोत अनुप्रयोग ढेर अधिकतम आकार में है। पुराने उपकरण, और मुझे लगता है कि एमुलेटर, आपको 16 एमबी ढेर तक सीमित करता है। अधिक रैम और बड़ी स्क्रीन वाले नए डिवाइस 24 एमबी ढेर का समर्थन करते हैं। यह स्पष्ट नहीं है कि एमुलेटर में ऐप ढेर आकार को नियंत्रित करने का कोई तरीका है। आप संभवतः छोटे ढेर आकार पर अपना परीक्षण करना चाहते हैं, वैसे भी। – CommonsWare

+0

मेरे पास एमुलेटर पर कोड के साथ रनटाइम समस्याएं हैं, एक टैबलेटिविटी ने एमुलेटर पर लोड करने के लिए 8-10 सेकेंड लगते हैं, वास्तविक डिवाइस पर 1-2 सेकंड लगते हैं, मुश्किल से दिखाई देते हैं। – Pentium10

1

एआरएम ओपोड्स का x86 में रूपांतरण का उल्लेख एमुलेटर में अंतराल का मुख्य स्रोत है।

मेरे अनुभव में, एमुलेटर वास्तव में बहुत धीमा है और डिवाइस से अपेक्षा की जा सकती है कि यह विशेष रूप से एक स्नैपड्रैगन प्रोसेसर के बारे में बहुत निराधार है।

एमुलेटर में भी बेहद बुनियादी अनुप्रयोग (मैं कुछ टेक्स्ट व्यू के साथ एक लीनियरलाउट बोल रहा हूं) गतिविधि लोड करने और निष्पादित करने में कुछ समय लगता है।

अधिकतर, हालांकि, अंतराल प्रारंभिक प्रतीत होता है। इसके द्वारा, मेरा मतलब है कि अगर आप एमुलेटर में एक सूची स्क्रॉल करते हैं, तो कार्रवाई को पहचानने के लिए एक सेकंड लग जाएगा और पहले थोड़ा सा झटका होगा, लेकिन यह बाद में आसान हो जाता है।

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



पीएस एंड्रॉइड के विभिन्न संस्करणों पर अपने गेम का परीक्षण करना न भूलें और एंड्रॉइड के विभिन्न संस्करणों में आम समस्याएं मुठभेड़ की तलाश करें।

+0

मेरी इच्छा है कि उन्होंने एएमएम प्रोसेसर के लिए संकलित वेबोस के संस्करण का उपयोग करने के बावजूद अपने वेबोस एमुलेटर के साथ पाम की तरह x86 के लिए एमुलेटर संकलित किया है। क्या यह आसानी से एंड्रॉइड के साथ भी नहीं किया जा सकता है? – Vitaly

2

यह अच्छा article देखें जहां यह दिखाया गया है कि कोई भी बीएमओएमआईपीएस का उपयोग करके डिवाइस की सीपीयू गति के साथ एमुलेटर की सीपीयू गति की तुलना कैसे कर सकता है।

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