2011-08-08 11 views
10

मुझे जावा में वास्तव में पठनीय कोड लिखना पसंद है। इसके लिए मैं बिल्डर पैटर्न का उपयोग करता हूं और बहुत सारी स्थिर विधियां करता हूं। लेकिन किसी बिंदु पर मैं कई तरीकों को कॉल या चेन करता हूं, इसलिए मैं इस सवाल के साथ आया: क्या इसमें कई विधियों को कॉल करने के लिए कोई प्रदर्शन समस्या है?विधि कॉल जावा में प्रदर्शन को कैसे प्रभावित करता है?

+0

यदि आप कोड का उपयोग कर रहे हैं, तो यह नहीं पता कि मापने योग्य और गंभीर प्रदर्शन प्रभाव है या नहीं, हमें कैसे पता होना चाहिए? –

उत्तर

9

विधि कॉल की तुलना में विधि का क्या प्रभाव अधिक प्रभावशाली है। यह एक पूर्व परिपक्व अनुकूलन है जिसे आपको टालने की सलाह दी जाएगी।

आपको पता नहीं है कि JVM में बनाए गए रनटाइम ऑप्टिमाइज़ेशन प्रदर्शन को प्रभावित करेंगे। वे आपके प्रयासों से ज्यादा चालाक होंगे।

अपना ऐप लिखें, इसे प्रोफाइल करें, और देखें कि क्या कोई स्पष्ट सुधार हो सकता है या नहीं। प्रदर्शन स्वीकार्य होने तक दोहराएं।

1

आम तौर पर बोलते हुए: वास्तव में नहीं।

हालांकि एक मामला जहां यह एक बड़ी संख्या में अनावश्यक ओवरहेड प्रदान कर सकता है वह एक बड़ी रिकर्सिव कॉल कर रहा है। यदि यह मामला है और प्रदर्शन एक मुद्दा है, तो आपको एक गतिशील प्रोग्रामिंग दृष्टिकोण या अपने स्वयं के ढेर को लागू करना चाहिए।

अन्यथा, आपके तरीकों से प्राप्त किसी भी प्रदर्शन हिट से अधिक होने के लिए आपके तरीकों को तर्कसंगत रूप से जटिल होना चाहिए।

+0

क्या आपके पास बड़ी रिकर्सिव कॉल के बारे में आपके दावे का समर्थन करने के लिए कोई सबूत है? [निम्नलिखित का अर्थ अन्यथा है] (http://www.ahmadsoft.org/articles/recursion/index.html) – nerdytenor

+2

@nerdytenor: हाँ मैं व्यक्तिगत अनुभव से करता हूं (मैं आपको विवरण के साथ नहीं बोलेगा और इसके बजाय आपको बेंचमार्क के लिए प्रोत्साहित करता हूं यदि आपको कोई संदेह है तो यह स्वयं ही है)। कृपया उस पोस्ट के नीचे पढ़ें जो आपने लिंक किया है जिसमें प्रदर्शन विसंगति दिखाई देती है। यहां एक और सटीक तुलना (एक ही साइट पर) है: http://www.ahmadsoft.org/articles/recursion/ubuntu.html – tskuzzy

+0

लिंक – nerdytenor

4

पठनीयता लगभग हमेशा जाने का तरीका है। फ़ंक्शन कॉल के प्रदर्शन पर असर पड़ता है लेकिन गैर पठनीय कोड शायद अन्य कार्यान्वयन समस्याओं से ग्रस्त होगा जिनमें उच्च प्रदर्शन हिट होगी।

कीवर्ड फ़ाइनल का उपयोग करें जहां उचित हो ताकि आप इन कार्यों के लिए इनलाइनिंग का सुझाव दे सकें।

ऐसी स्थिति जहां आप बहुत से फ़ंक्शन कॉल का उपयोग नहीं करना चाहते हैं, तंग लूप हैं। ऐसा कुछ जो हजारों बार होता है। और सॉफ़्टवेयर को अनुकूलित करने की आवश्यकता होने पर आमतौर पर इन स्थानों को अनुकूलित किया जा सकता है।

+1

लिंक के लिए यहां सहमत है, और दोहराने के लिए: जब तक कि आप सैकड़ों नहीं बना रहे कुछ सेकंड के भीतर हजारों कॉल, यह ऐसी चीज नहीं है जिसके बारे में आपको चिंता करने की ज़रूरत है। –

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