विंडोज 7 x64 पर एंड्रॉइड एम्यूलेटर प्रदर्शन में सुधार करें


9

मैं विंडोज 7 x64 पर एक्लिप्स हेलियोस चला रहा हूं। मेरे पास 4.0 जीबी के साथ कोर 2 डुओ 2.0 Ghz है जो मुझे लगता है कि पर्याप्त होना चाहिए, क्योंकि मुझे कभी भी अन्य विकासशील टूल के साथ कोई प्रदर्शन समस्या नहीं है।

जब मैंने अपना पहला ऐप एंड्रॉइड एमुलेटर (दोनों 2.3.3 और 3.0 दोनों) पर चलाया तो ओएस को लोड करने में कम से कम 5 मिनट लगे और सबसे पहले तो इसने हैलोएंड्रॉयड ऐप भी नहीं चलाया। जब मैं एप्लिकेशन को चलाने में कामयाब रहा, तब भी प्रदर्शन असहनीय था।

मैंने प्रदर्शन को बेहतर बनाने के लिए विभिन्न चीजों की कोशिश की है, लेकिन कोई बड़ा सुधार नहीं दिखाया गया है। मुझे लगता है कि मुझे कुछ याद आ रहा है।

चीजें जो मैंने कोशिश की हैं:

AVD मैनेजर पर

  1. डिवाइस रैम का आकार 512 तक।
  2. 640 x 480 के लिए संकल्प।
  3. स्नैपशॉट सक्षम किया गया।

परियोजना वरीयताओं पर \ Android

  1. \ Launch -cpu-delay 0 -no-boot-anim -cache/cache -avd Android3

जिन चीजों की मैंने कोशिश नहीं की है: - एक डिवाइस पर तैनात (कोई भी नहीं है)।

वैसे, मुझे मैक मिनी 2.66 गीगाहर्ट्ज़ 2 जीबी पर भी यही समस्या थी लेकिन इन सेटिंग्स में फर्क आया।

इस लंगड़े प्रदर्शन को बेहतर बनाने के लिए कोई भी सुझाव दे सकता है।


हाइपरथ्रेडिंग @ 2.8 GHz और एक पागल वीडियो कार्ड के साथ एक क्वाड-कोर प्राप्त करें। हे। लेकिन गंभीरता से, एमुलेटर धीमा है। आम तौर पर, जब तक आपका हार्डवेयर परिमाण का क्रम अधिक शक्तिशाली नहीं होता, तब तक अनुकरण हमेशा धीमा होता है। मुझे नहीं लगता कि आप इसे पहले से कहीं ज्यादा बेहतर काम कर रहे हैं।
मैथ्यू पढ़ें

6
वास्तव में, एमुलेटर कई कोर (अभी तक) का समर्थन नहीं करता है। तो घड़ी की कल वास्तव में मायने रखती है। यहां तक ​​कि मेरी नई देव मशीन पर, मुझे प्रदर्शन समस्याएं हैं, विशेष रूप से मधुकोश के साथ। मैं नवीनतम i7 क्वाड कोर, 8 जीबी मेमोरी और एक ठोस राज्य हार्ड ड्राइव के बारे में बात कर रहा हूं।
ब्रायन डेनी

हा, तो मेरे पुराने 3.0 गीगाहर्ट्ज पेंटियम 4 को इसे बेहतर तरीके से चलाना चाहिए (पृष्ठभूमि में और कुछ नहीं)? पागल।
मैथ्यू पढ़ें

@ ब्रायन डेनी भले ही एमुलेटर को मल्टीथ्रेड नहीं करता है, लेकिन इसे कई कोर देने से वर्कलोड को कम इस्तेमाल किए गए कोर में स्थानांतरित करने में मदद मिलती है, लेकिन इससे स्थिरता कम हो जाती है, जिसके परिणामस्वरूप आवधिक दुर्घटनाएं होती हैं। तो यह एक गति / स्थिरता व्यापार है, लेकिन मैं गति के लिए सभी कोर का उपयोग करना पसंद करता हूं।
onik

जवाबों:


6

एमुलेटर धीमा है क्योंकि यह एक ऐसा क्यूमू है जो एक पूरी तरह से अलग सीपीयू आर्किटेक्चर का अनुकरण करता है क्योंकि यह उपभोक्ता पीसी द्वारा उपयोग किया जाता है: एआरएम (बनाम x86 (_64) आपके पीसी पर)

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


सीपीयू का अनुकरण धीमा हो जाता है, लेकिन फोन एमुलेटर भी एआरएम का अनुकरण कर रहा है और यह बहुत तेज है। यह सिर्फ निर्देश सेट से अधिक है। हनीकॉम्ब अधिक जटिल प्रतीत होता है (और शायद अधिक शक्तिशाली एआरएम प्रोसेसर की आवश्यकता होती है)। GoogleTV x86 है, इसलिए मुझे आश्चर्य है कि इसका एमुलेटर प्रदर्शन कैसा होगा ... (चाहे वे x86 का अनुकरण करें या इसे एक देशी प्रक्रिया
चलाएं

3

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

यह एक मुफ्त अनुप्रयोग नहीं है, लेकिन यह महंगा भी नहीं है। आप इसे YouWave Android Emulator पर पा सकते हैं । परीक्षण को आज़माएं और हमारे पास वापस जाएं;)


0

एमुलेटर में हनीकॉम्ब (3.0) बेहद धीमा है। आप अपनी अधिकांश कार्यक्षमता को फोन के लिए काम करने की कोशिश कर सकते हैं, पहले हनीकॉम्ब का उपयोग कम से कम करें।

आपके CPU में वर्चुअलाइजेशन समर्थन को सक्षम करने के लिए कुछ BIOS सेटिंग्स हैं। मुझे लगता है कि इन्हें चालू करने से एमुलेटर की गति बढ़ सकती है, लेकिन मुझे यकीन नहीं है। (आपके सिस्टम के सटीक नाम जिन्हें मैं नहीं जानता, लेकिन उनके पास "वर्चुअलाइजेशन" या "vt-x" या नाम में कुछ होगा।

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

(प्रक्रियाओं को खोजना आसान हो सकता है ProcessExplorer के साथ क्योंकि आप लक्ष्य बटन पर क्लिक कर सकते हैं और फिर एक विंडो पर क्लिक कर सकते हैं और यह आपको उस विंडो के लिए प्रक्रिया दिखाता है।)


अपडेट: देखें का उपयोग हार्डवेयर त्वरण अनुभाग कैसे एमुलेटर तेजी लाने के लिए अपने CPU में अपने GPU और वर्चुअलाइजेशन समर्थन उपयोग करने के लिए देखने के लिए Android डॉक्स पर।


उन्नत CPU निर्देश सेट एमुलेटर को गति देने में मदद नहीं करेगा, क्योंकि यह मूल रूप से qemu है जो ARM CPU का अनुकरण करता है।
प्रवाह

जब तक वे qemu को तेज दर पर ARM निर्देशों को संसाधित करने में मदद नहीं करते। (तो यह एआरएम की दर से मेल खा सकता है।) ध्यान रखें कि हनीकॉम्ब एक वास्तविक डिवाइस की तुलना में एमुलेटर पर धीमी गति से चलता है। मान लें कि ARM के पास SIMD के निर्देश थे, लेकिन x86 ने नहीं किया और इसके बजाय उन्हें सीरियल ऑपरेशन के रूप में अनुकरण किया। X86 पर एक SIMD CPU एक्सटेंशन को सक्षम करने से उस समस्या का समाधान हो जाएगा। उस ने कहा, मुझे नहीं पता कि वर्चुअलाइजेशन समर्थन क्या करता है, सिवाय इसके कि सीपीयू का अनुकरण करते समय प्रदर्शन में सुधार करना है।
इडबरी

वर्चुअलाइजेशन और एमुलेशन समान नहीं हैं।
लीन रयान

@ लिली: यह सच है, लेकिन यह इस बिंदु के बगल में है: इंटेल / एएमडी का वर्चुअलाइजेशन समर्थन (सैद्धांतिक रूप से) एंड्रॉइड एमुलेटर को तेज करता है। किसी के नामकरण के साथ शायद किसी को लगाया जाता है। (मुझे लगता है कि CPU समर्थन वर्चुअलाइज़ेशन और CPU इम्यूलेशन दोनों के लिए काम करता है, इसलिए CPU वेंडर वास्तव में निशान से दूर नहीं होते।) Heck, सिर्फ इसलिए कि वे समान नहीं हैं, इसका मतलब यह नहीं है कि उन्हें संयुक्त नहीं किया जा सकता है। एक प्रणाली: "QEMU एक सामान्य और खुला स्रोत मशीन एमुलेटर और वर्चुलाइज़र है"
इडबरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.