2014-07-15 7 views
6

मैं जानना चाहता हूं कि जावा 8 में लाभ लैम्बडा के कितने बड़े हैं। मैं मानता हूं कि कभी-कभी लैम्बडा का उपयोग करने के लिए यह अधिक पठनीय हो सकता है, लेकिन क्या वास्तव में प्रदर्शन पक्ष पर इसका बड़ा प्रभाव पड़ता है? या यह मुख्य रूप से वाक्य रचनात्मक चीनी के रूप में केंद्रित है? मैं कभी-कभी गुमनाम आंतरिक कक्षाएं पसंद करता हूं; जब मैं लैम्ब्डा का हर समय उपयोग नहीं करता हूं तो क्या मैं वास्तव में कई लाभ खो देता हूं?लैम्ब्डा बनाम अज्ञात आंतरिक वर्ग प्रदर्शन: क्लासलोडर पर लोड को कम करना?

केवल? बड़ा? प्रदर्शन लाभ, मुझे लगता है कि हम वास्तव में कक्षाएं वर्ग लोडर कार्यक्रम के शुरू में लोड करने के लिए है कि नहीं बनाते है - कई कई धागे बनाने उदाहरण के लिए:

Thread t = new Thread(new Runnable() { 
    public..... 
}); 

Sample$1.class तरह कक्षाएं बनाता है ।

इसके अलावा, कोड के पठनीयता या रखरखाव इत्यादि के अलावा कोई प्रदर्शन या अन्य छुपे हुए लाभ है? जेवीएम में कहीं छिपा हुआ है? मैंने इस तरह के प्रश्नों को देखा है लेकिन उनमें से अधिकतर दृश्य पक्ष पर केंद्रित थे; मुझे उसमें कोई दिलचस्पी नहीं है। वेंकट सुब्रमण्यम के साथ Java 8 Lambdas Hacking देखने के बाद प्रश्न जिज्ञासा से बाहर है।

उत्तर

6

ओरेकल में कुछ प्रदर्शन अंतर शामिल हैं। ऐसा प्रतीत होता है कि ऐसे कुछ कारक हैं जो लैम्बडा बनाम अनाम कक्षाओं के प्रदर्शन को प्रभावित करते हैं।

http://www.oracle.com/technetwork/java/jvmls2013kuksen-2014088.pdf

6

पीडीएफ @Brett Okken से जुड़ा हुआ पढ़ने के बाद मेरा मानना ​​है कि निम्नलिखित रखती है:

  • इनर कक्षाएं पहले उपयोग पर एक थोड़ा धीमे प्रदर्शन है, लेकिन यह negliable लगता है।
  • लैम्ब्डास का धीमा प्रदर्शन होता है जब अक्सर बुलाए जाने वाले बड़े ढेर के कारण बुलाया जाता है।

मैं निम्नलिखित के साथ छड़ी जाएगा: पठनीयता के लिए

  • उपयोग lambdas जब कुछ मिलीसेकंड प्रदर्शन नुकसान एक समस्या (जीयूआई सामान, आदि)
  • अक्सर कहा जाता है के लिए इनर क्लासों उपयोग नहीं है, प्रदर्शन महत्वपूर्ण कार्यों।
संबंधित मुद्दे