आप हाल ही में प्रोफाइल अपने राय है।
प्रदर्शन:
यह एक सूक्ष्म अनुकूलन था कि एक पूर्व 1.2 JVM में 1999-2001 में ध्यान देना करने के लिए कुछ और फिर भी मैं यह सवाल उठाया है होगा जब तक कि कुछ गंभीर संख्या से पता चला गया हो सकता है अन्यथा।
आधुनिक जेआईटी कार्यान्वयन आपको बताएंगे कि आज आपके राय जगह से बाहर है।
आधुनिक कंपाइलर कार्यान्वयन सभी प्रकार के अनुकूलन करते हैं जो इस तरह की चीजों को जावा में समय बर्बाद करने के बारे में सोचते हैं। जेआईटी सिर्फ चिंता का अपशिष्ट बनाता है।
तर्क:
एक समवर्ती स्थिति में, अपने दो कोड ब्लॉक नहीं तार्किक बराबर, यदि आप परिवर्तन देखने के लिए, जिससे स्थानीय प्रतिलिपि रोकेगा जिन्हें चाहते हैं। आप जो करना चाहते हैं उसके आधार पर, एक या अन्य दृष्टिकोण बहुत सूक्ष्म गैर-निर्धारिती बग बना सकते हैं जो अधिक जटिल कोड में पिन करना बहुत मुश्किल होगा।
विशेष रूप से यदि वापसी हुई तो String
के विपरीत कुछ परिवर्तनीय था जो अपरिवर्तनीय है। फिर भी स्थानीय प्रतिलिपि बदल सकती है, जब तक कि आपने गहरा क्लोन नहीं किया हो, और वास्तव में गलत होने में वास्तव में आसान हो जाता है।
चिंता खुद यह कर सही ढंग से, तो उपाय और उसके बाद का अनुकूलन क्या जब तक यह कोड कम पोषणीय नहीं है महत्वपूर्ण है के साथ।
JVM final
उदाहरण के सदस्यों को किसी भी कॉल इनलाइन और विधि कॉल को दूर करता है, तो वहाँ विधि return this.name;
यह जानता है के अलावा अन्य कॉल में कोई बात नहीं एक्सेसर विधि में तर्क नहीं है कि है और यह जानता है संदर्भ final
इतना है जाएगा यह जानता है कि यह मूल्य को रेखांकित कर सकता है क्योंकि यह नहीं बदलेगा।
कि अंत
person.getName() != null && person.getName().equalsIgnoreCase("Einstein")
करने के लिए अधिक सही ढंग से
person != null && "Einstein".equalsIgnoreCase(person.getName())
के रूप में व्यक्त किया जाता है एक NullPointerException
पुनर्रचना होने की कोई संभावना नहीं है, क्योंकि:
आधुनिक आईडीई रिफैक्टरिंग टी ओल्स भी स्थानों के समूह में कोड बदलने के बारे में किसी भी तर्क को हटा दें।
क्यों नहीं यह कोशिश करते हैं और देखते हैं? प्रदर्शन लाभ को मापना आसान होगा हालांकि अभी भी सटीक परिणाम प्राप्त करने की देखभाल की आवश्यकता है ... – DNA
इस बात पर निर्भर करता है कि कम्प्यूटेशनल रूप से महंगा 'getName' कितना महंगा है। यदि 'getName' ताले और सिंक्रनाइज़ेशन से भरा एक हजार लाइन विधि चाक है, तो हाँ, आपको कुछ समस्याएं हो सकती हैं। फिर फिर, आप नहीं कर सकते हैं। इसके अलावा यदि एकाधिक कॉल अलग-अलग मान वापस कर सकते हैं, तो दोनों दृष्टिकोण अर्थात् अलग-अलग हो सकते हैं। –
आप उसी वाक्य में "गेटटर" और "सर्वश्रेष्ठ अभ्यास" का उपयोग नहीं कर सकते हैं, जब तक कि प्रेषण "गेटटर विधियों का उपयोग सर्वोत्तम अभ्यास के विपरीत नहीं है"। – DwB