तो मुझे लगता है कि मैं खुद को निम्नलिखित पैटर्न की तरह कुछ कर रहा हूं। बजाय:जावा पैटर्न: अस्थायी चर का उपयोग करने के लिए यह समझ में आता है
if (map.containsKey(someKey)) {
Value someValue = map.get(someKey);
...
}
(और के बाद से मैं जानता हूँ कि मेरी नक्शा nulls की दुकान नहीं है), मैं करूँगा नक्शा पार नहीं करने के लिए दो बार:
Value someValue = map.get(someKey);
if (someValue != null) {
...
}
यह लगता है के लिए मुझे एक सार्थक होने के लिए पैटर्न दिया गया है कि Map
संचालन संचालन और अनुकूलक की एक सभ्य संख्या निष्पादित करता है, मुझे लगता है कि इसे अनुकूलित करने के लिए पर्याप्त स्मार्ट नहीं है।
लेकिन फिर मैं खुद को अन्य स्थितियों में समान पैटर्न ढूंढता हूं। उदाहरण के लिए, क्या मुझे someMethod()
परिणाम दो बार कॉल करने के बजाय अस्थायी चर में संग्रहीत करना चाहिए? जाहिर है कि अगर साइड इफेक्ट्स हैं तो मैं someMethod()
को दो बार कॉल नहीं कर सकता हूं, लेकिन ऑप्टिमाइज़ेशन स्टैंडपॉइंट से इसे केवल कॉल करने के लिए कब समझ में आता है?
if (someObject.someMethod() != null) {
processSomehow(someObject.someMethod());
}
मैं एक "रचनात्मक नहीं" सवाल यह सीमाओं बताएं ताकि मैं जवाब है कि कुछ तथ्य और सिर्फ अनुमान के बजाय संदर्भ पेश की तलाश में हूँ।
- जब यह यह करने के लिए कोई मतलब है और जब यह नहीं है?
- एक अस्थायी चर का उपयोग कब किया जाना चाहिए यह निर्धारित करने के लिए
someMethod()
की "लागत" का मूल्यांकन कैसे करना चाहिए? - सरल विधियों जैसे विधियों के लिए, क्या यह हॉटस्पॉट कंपाइलर या ऑप्टिमाइज़र के रास्ते में हो सकता है और वास्तव में कम कुशल कोड उत्पन्न करता है?
वंशावली के लिए, मैं नहीं पूछ रहा हूं "मैं अपने मौजूदा कार्यक्रम की गति को कैसे सुधार सकता हूं"। मैं यह जानने की कोशिश कर रहा हूं कि "भविष्य में कोड लिखते समय मुझे किस पैटर्न का उपयोग करना चाहिए"।
किसी भी जानकारी के लिए धन्यवाद।
मुझे लगता है कि इन सभी सवालों के जवाब में "प्रोफाइलर" शब्द शामिल है ... –
स्पष्ट रूप से यदि 'someMethod() 'महंगा है या इसके दुष्प्रभाव हैं तो आप इसे दो बार कॉल नहीं करना चाहते हैं। जावा (अभी तक) में 'idempotent' कीवर्ड नहीं है (पीएल/1 :-) –
अच्छा बिंदु @ जिम में' कमी 'की पुरानी यादें लाता है। मैंने अपने प्रश्न को और अधिक स्पष्ट करने के लिए संपादित किया है कि मैं साइड इफेक्ट्स के बारे में बात नहीं कर रहा हूं। लेकिन मैं इस बारे में बात कर रहा हूं कि विधि के "व्यय" का मूल्यांकन कैसे किया जाए। – Gray