2017-05-20 6 views
7

क्या कोटलिन कोई प्रदर्शन बढ़ाता है? क्या कोई बेंचमार्किंग है? क्या कोटलिन तेज है तो जावा? मुझे यह कोटलिन वेबसाइट में मिला। https://kotlinlang.org/docs/reference/comparison-to-java.html भाषा सुविधाओं के बारे में बात करना लेकिन प्रदर्शन नहीं।क्या कोटलिन कोई प्रदर्शन बढ़ावा देता है?

+2

संकलन समय वास्तव में एकमात्र प्रदर्शन अंतर है जो मैं – Tdorno

+1

@Tdorno के बारे में सोच सकता हूं मैंने भी पढ़ा है (स्रोत: https://redd.it/3ddj8w) क्योंकि कोटलिन लैम्ब्डा कॉल को रेखांकित करता है, जहां जावा अज्ञात वर्ग बनाता है, कोटलिन इस मामले में मामूली तेजी से हो सकता है। लेकिन अधिकांश भाग के लिए, कोटलिन एक ही बाइट कोड _ruly_ को संकलित करने जा रहा है और जावा के जितना तेज़ हो। –

+0

किसी भी भाषा के लिए जावा से जावा से वास्तव में तेज़ होने का कोई अच्छा तरीका नहीं है, इसलिए कोटलिन से पूछना काफी अनुचित है। – voddan

उत्तर

13

कोटलिन जावा पर बहुत समान बाइटकोड उत्पन्न करता है, इसलिए कोटलिन कोड का प्रदर्शन अधिकांश मामलों में समान जावा कोड के प्रदर्शन के समान होता है।

एक तरीका जिसमें कोटलिन जावा से तेज हो सकता है inline functions है। इनलाइन फ़ंक्शंस के साथ, filter या map जैसे उच्च-आदेश फ़ंक्शंस का उपयोग करके कोड को सरल लूप-आधारित बाइटकोड में संकलित किया जा सकता है जो किसी भी ऑब्जेक्ट को नहीं बनाता है या किसी वर्चुअल कॉल का उपयोग नहीं करता है (जावा कोड के विपरीत जो समान प्रकार के फ़ंक्शंस का उपयोग करता है)।

कोटलिन के लिए कुछ मानक here पाया जा सकता है।

+0

मुझे आश्चर्य है कि कोटलिन इनलाइन फ़ंक्शंस वास्तव में कितना अंतर करता है; जेवीएम/जेआईटी रनटाइम पर इनलाइनिंग तरीकों पर भी बहुत अच्छा है। यदि कोटलिन कंपाइलर इनलाइनिंग नहीं करेगा, तो JVM संभवतः रनटाइम पर ऐसा करेगा। – Jesper

+1

जेवीएम सरल विधि कॉल को रेखांकित करने में वाकई अच्छा है, लेकिन एक 'फिल्टर' फ़ंक्शन के कोड जैसे मेगमोर्फिक कॉल साइट को रेखांकित करने में इतना अच्छा नहीं है। – yole

+2

https://sites.google.com/a/athaydes.com/renato-athaydes/posts/kotlinshiddencosts-benchmarks –

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