Dalvik VM बनाम ART (Android रनटाइम): अंतिम उपयोगकर्ताओं के लिए प्रभाव?


22

Nexus 5 (Android 4.4 किटकैट) के साथ, Google ने ऐप चलाने के लिए दो रनटाइम भेजे हैं।

Android 4.4 किटकैट में रनटाइम विकल्प चुनें Android 4.4 किटकैट में Dalvik और ART रनंटाइम्स

एंडवासर्स के लिए डाल्विक और एआरटी के बीच अंतर क्या हैं? इससे एंड्यूसर कैसे प्रभावित हो सकते हैं? क्या कोई विशेष कारण है कि मुझे नया एआरटी रनटाइम चुनना चाहिए?


3
इस सेटिंग को खोजने के लिए आपको डेवलपर विकल्पों के माध्यम से सक्षम और खोजना होगा, यह संकेत होना चाहिए कि यह अंतिम उपयोगकर्ताओं के लिए अभिप्रेत नहीं है।
डैन हुल्मे

1
@DanHulme अच्छा बिंदु, लेकिन अभी भी गैर-डेवलपर उत्साही डेवलपर विकल्पों के साथ खेलते हैं और वे इसे कई बार सकारात्मक गैर-विकास उद्देश्यों के लिए भी उपयोग करते हैं।
एंड्रॉइड क्सिटो

जहां तक ​​यूजर एक्सपीरियंस आपकी बात है तो आप केवल इस बात पर ध्यान देंगे कि बैटरी पावर काफी हद तक बच जाती है, ... हालांकि आप दाल्विक से एआरटी पर स्विच करते समय गति का अंतर नहीं देख पाएंगे।
राहुल रैना

जवाबों:


26

Dalvik VM (वर्चुअल मशीन) एक जावा VM (जिस पर ऐप चलते हैं) का Google संस्करण है। VMs ऐप्स को वास्तविक हार्डवेयर और अन्य ऐप से अलग और स्वतंत्र रखते हैं। लेकिन, काम करने के लिए, Dalvik को तथाकथित bytecode (वर्चुअल मशीन के लिए डिज़ाइन किया गया) को देशी मशीन कोड में बदलने की आवश्यकता है। प्रदर्शन दंड को कम करने के लिए जो कि मूल कोड रूपांतरण के लिए बायटेकोड का परिचय देता है, जस्ट-इन-टाइम (जेआईटी) संकलन नामक एक प्रक्रिया का प्रदर्शन किया जाता है, जो मूल कोड को हॉट, यानी अक्सर उपयोग किए जाने वाले, बायटेकोड को परिवर्तित करता है। 1

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

यदि एआरटी प्रदर्शन और बैटरी जीवन के दृष्टिकोण पर बेहतर है, तो क्या मुझे इसका उपयोग शुरू करना चाहिए?

नहीं। आप ऐसा करते हैं, तो आप किसी तृतीय पक्ष ऐप्स टूट सकता है। Google ने इस एआरटी पूर्वावलोकन को एंड्रॉइड 4.4 के साथ डेवलपर्स को इस पर अपने ऐप का परीक्षण करने के लिए भेज दिया है।

साइड नोट: एआरटी के साथ Google का दृष्टिकोण आईओएस को हरा देना है (आईओएस एप्लिकेशन देशी हैं इसलिए कम-एंड हार्डवेयर स्पेक्स पर भी बेहतर प्रदर्शन करते हैं), लेकिन मुझे नहीं पता कि यह कहां जा रहा है ... एक और विखंडन? देखें कि ओईएम एक या दोनों का उपयोग कर डिवाइस बनाने के लिए स्वतंत्र हैं । जबकि अंतिम संस्करण को अधिकांश एप्लिकेशन को प्रभावित नहीं करना चाहिए, लेकिन इसकी 100% क्रॉस-प्लेटफ़ॉर्म चीज़ नहीं है।

1 ध्यान दें कि एंड्रॉइड 2.2 में डाल्विक में जेआईटी जोड़ा गया था


3
हो सकता है कि दो तथ्य ध्यान देने योग्य हों: DEX की तुलना में 20..25% अधिक संग्रहण का उपयोग करने वाले ऐप्स में ART के AOT परिणाम। एक नेक्सस -5 पर प्लस परीक्षण मैंने पढ़ा है कि व्यक्तिपरक गति और न ही बैटरी धीरज में कोई अंतर नहीं दिखा। दोनों निश्चित रूप से सुधार करेंगे, किटकैट में एआरटी को सिर्फ एक डेवलपर्स का पूर्वावलोकन और संगतता जांच (जो कि व्हाट्सएप विफल रहा) माना जा रहा है। इसलिए मैं सचिन का निष्कर्ष निकालता हूं: यह एंड-यूजर्स के लिए अच्छा नहीं है।
इज़्ज़

2
बहुत बढ़िया जवाब। मैंने इसे थोड़ा सुधारने की स्वतंत्रता ली। लेकिन मैं अंतिम पैराग्राफ से सहमत नहीं हूं: एआरटी विखंडन में वृद्धि नहीं करता है: यदि एआरटी उत्पादन के लिए तैयार माना जाता है, तो इससे कोई फर्क नहीं पड़ता कि आपका ऐप डाल्विक या एआरटी द्वारा चलाया जाता है, दोनों प्रारंभिक बिंदु के रूप में एक ही .dex प्रारूप का उपयोग करते हैं। केवल वह ही एआरटी एओटी को देशी कोड में संकलित करता है।
प्रवाह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.