जावा बनाम सी ऐप प्रदर्शन - गैरी बताते हैं

लेखक: John Stephens
निर्माण की तारीख: 23 जनवरी 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
Java vs C app performance – Gary explains
वीडियो: Java vs C app performance – Gary explains

विषय


सबसे खराब स्कोर के साथ शुरू, 32-बिट एंड्रॉइड 5.0, दिखाता है कि जावा कोड सी की तुलना में 296% धीमा है, या दूसरे शब्दों में 4 गुना धीमा है। फिर, याद रखें कि निरपेक्ष गति यहाँ महत्वपूर्ण नहीं है, बल्कि सी कोड की तुलना में जावा कोड को चलाने में लगने वाले समय में समान डिवाइस पर अंतर होता है। 32-बिट एंड्रॉइड 4.4 किटकैट अपने Dalvik JVM के साथ 237% पर थोड़ा तेज है। एक बार जब छलांग Android 6.0 मार्शमैलो की जाती है, तो नाटकीय रूप से सुधार शुरू हो जाता है, 64-बिट Android 6.0 जावा और सी के बीच सबसे छोटे अंतर की उपज के साथ।

डिवीजन द्वारा परीक्षण का उपयोग करते हुए, दूसरा टेस्ट प्राइम नंबर टेस्ट है। जैसा कि ऊपर बताया गया है कि यह कोड 64-बिट का उपयोग करता हैलंबा पूर्णांक और इसलिए 64-बिट प्रोसेसर का पक्ष लेंगे।

जैसा कि अपेक्षित था कि 64-बिट प्रोसेसर पर चलने वाले एंड्रॉइड से सर्वश्रेष्ठ परिणाम आते हैं। 64-बिट एंड्रॉइड 6.0 के लिए गति अंतर बहुत छोटा है, बस 3%। जबकि 64-बिट एंड्रॉइड 5.0 के लिए यह 38% है। यह Android 5.0 और पर ART के बीच के सुधारों को प्रदर्शित करता है अनुकूलन Android 6.0 में एआरटी द्वारा संकलक का उपयोग किया जाता है। चूंकि एंड्रॉइड 7.0 एन अभी भी एक विकास बीटा है, क्योंकि मैंने परिणाम नहीं दिखाए हैं, हालांकि बेहतर नहीं होने पर यह आमतौर पर एंड्रॉइड 6.0 एम के साथ-साथ प्रदर्शन कर रहा है। बुरे परिणाम एंड्रॉइड के 32-बिट संस्करणों के लिए हैं और 32-बिट एंड्रॉइड 6.0 अजीब रूप से समूह के सबसे खराब परिणाम देते हैं।


तीसरा और अंतिम परीक्षण एक लाख पुनरावृत्तियों के लिए एक भारी गणितीय कार्य निष्पादित करता है। फ़ंक्शन पूर्णांक अंकगणित के साथ-साथ अस्थायी अंक अंकगणित करता है।

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


प्राइम्स टेस्ट की तरह, यह टेस्ट 64-बिट का उपयोग करता हैलंबा पूर्णांक, यही वजह है कि अगला सर्वश्रेष्ठ स्कोर 64-बिट एंड्रॉइड 5.0 से आता है। उसके बाद 32-बिट एंड्रॉइड 6.0, उसके बाद 32-बिट एंड्रॉइड 5.0, और अंत में 32-बिट एंड्रॉइड 4.4 आता है।

लपेटें

कुल मिलाकर C जावा की तुलना में तेज़ है, हालाँकि 64-बिट एंड्रॉइड 6.0 मार्शमैलो की रिलीज़ के साथ दोनों के बीच की खाई को काफी कम कर दिया गया है। बेशक, वास्तविक दुनिया में, जावा या सी का उपयोग करने का निर्णय काला और सफेद नहीं है। जबकि C के कुछ फायदे हैं, सभी Android UI, Android सेवाओं के सभी, और सभी Android APIs को जावा से कॉल करने के लिए डिज़ाइन किया गया है। C वास्तव में केवल तब उपयोग किया जा सकता है जब आप एक रिक्त OpenGL कैनवास चाहते हैं और आप किसी भी Android API का उपयोग किए बिना उस कैनवास पर आकर्षित करना चाहते हैं।

हालाँकि यदि आपके ऐप में कुछ भारी उठाने की क्षमता है, तो उन हिस्सों को C में पोर्ट किया जा सकता है और आपको गति में सुधार देखने को मिल सकता है, हालाँकि जितना आप एक बार देख सकते हैं उतना नहीं।

तार्किक रूप से, यह सैमसंग या किसी भी बड़े स्मार्टफोन निर्माता के लिए एक डिवाइस के लिए छह अलग-अलग स्मार्टफ़ोन रंगमार्ग का उत्पादन करने और फिर हर देश में उन सभी कलरवे को बढ़ावा देने और बेचने के लिए पागल...

IPhone 7, 7 Plu, 8 और 8 Plu अब जर्मनी में बिक्री के लिए नहीं हैं।उपकरणों को Apple.com के साथ-साथ जर्मनी के 15 आधिकारिक Apple स्टोर्स से भी खींचा गया है।बिक्री प्रतिबंध कंपनी के चिपसेट निर्माता क्वालकॉ...

नए लेख