दो बुनियादी कारण हैं कि जावा गो और सी ++ से तेज है, और कई मामलों में सी से तेज हो सकता है:
1) JIT कंपाइलर। यह रनटाइम प्रोफाइल के आधार पर, OO कक्षाओं के साथ कई स्तरों के माध्यम से वर्चुअल फ़ंक्शन कॉल को इनलाइन कर सकता है। यह एक संकलित भाषा में संभव नहीं है (हालांकि रिकॉर्ड किए गए प्रोफ़ाइल के आधार पर नया पुन: संकलन मदद कर सकता है)। अधिकांश बेंचमार्क के लिए यह बहुत महत्वपूर्ण है जिसमें दोहराए गए एल्गोरिदम शामिल हैं।
2) जीसी। मॉलॉक की तुलना में जीसी आधारित मेमोरी आवंटन लगभग मुफ्त है। और 'फ्री' पेनल्टी को पूरे रनटाइम के दौरान परिशोधन किया जा सकता है - अक्सर छोड़ दिया जाता है क्योंकि प्रोग्राम को कचरा इकट्ठा करने से पहले समाप्त करने की आवश्यकता होती है।
जीसी / जेवीएम को कुशल बनाने वाले अत्यंत प्रतिभाशाली डेवलपर्स के सैकड़ों (हजारों) हैं। यह सोचकर कि आप "उन सभी से बेहतर कोड कर सकते हैं" एक मूर्खतापूर्ण है। यह अपने दिल में एक मानव अहंकार समस्या है - मानव के पास यह स्वीकार करने में कठिन समय है कि प्रतिभाशाली मनुष्यों द्वारा उचित प्रशिक्षण के साथ, कंप्यूटर उन मनुष्यों की तुलना में बेहतर प्रदर्शन करने वाला है जो इसे क्रमादेशित करते हैं।
Btw, C ++, C के समान तेज़ हो सकता है यदि आप उपयोग नहीं करते हैं और OO सुविधाओं का उपयोग करते हैं, लेकिन तब आप C से शुरू करने के लिए सिर्फ प्रोग्रामिंग में बहुत करीब हैं।
सबसे महत्वपूर्ण बात, इन परीक्षणों में "गति अंतर" आमतौर पर अर्थहीन होते हैं। IO लागत प्रदर्शन अंतर से अधिक परिमाण के आदेश हैं, और इसलिए IO लागत को कम करने वाले उचित डिजाइन हमेशा एक व्याख्या भाषा में जीतते हैं। बहुत कम सिस्टम सीपीयू बाउंड होते हैं।
अंतिम नोट के रूप में, लोग "कंप्यूटर भाषा बेंचमार्क गेम" को "वैज्ञानिक उपाय" के रूप में संदर्भित करते हैं। परीक्षण पूरी तरह से त्रुटिपूर्ण हैं, उदाहरण के लिए, यदि आप nbody के लिए जावा परीक्षण देखते हैं। जब मैं एक ही ओएस / हार्डवेयर पर परीक्षण चलाता हूं, तो मुझे जावा के लिए लगभग 7.6 सेकंड मिलते हैं, और सी के लिए 4.7 सेकंड - जो उचित है - परीक्षण रिपोर्ट 4x धीमे नहीं। यह साइट ट्रैफ़िक उत्पन्न करने के लिए डिज़ाइन किया गया क्लिक-फ़ाइट, फ़ेक न्यूज़ है।
अंतिम, अंतिम नोट के रूप में ... मैंने गो का उपयोग करके परीक्षण चलाए, और यह 7.9 सेकंड था। तथ्य यह है कि जब आप गो पर क्लिक करते हैं, तो यह जावा से तुलना करता है, और जब आप जावा पर क्लिक करते हैं तो यह सी से तुलना करता है, किसी भी गंभीर इंजीनियर को लाल झंडा होना चाहिए।
जावा, गो और सी ++ की वास्तविक दुनिया की तुलना के लिए https://www.biorxiv.org/content/10.1101/558056v1 स्पॉइलर अलर्ट देखें , जावा कच्चे प्रदर्शन में शीर्ष पर आता है, साथ में संयुक्त मेमोरी उपयोग के साथ शीर्ष पर आता है। और दीवार का समय।