उठाना पड़ता अगर मैं कोडएक जावा गेटर निष्पादन दंड
int getA(){
return a;
}
और फिर
int b = obj.getA();
बजाय
int b = obj.a;
की तरह कुछ करना है कि मतलब है कि ढेर अंततः मेरे कोड को धीमा कर धक्का दिया जाएगा और popped होगा?
उठाना पड़ता अगर मैं कोडएक जावा गेटर निष्पादन दंड
int getA(){
return a;
}
और फिर
int b = obj.getA();
बजाय
int b = obj.a;
की तरह कुछ करना है कि मतलब है कि ढेर अंततः मेरे कोड को धीमा कर धक्का दिया जाएगा और popped होगा?
जेआईटी कंपाइलर विधि को रेखांकित करेगा।
कोड
int b = obj.GetA();
यह सही नहीं है। एक सी/सी ++ कंपाइलर इस प्रकार के फ़ंक्शन को रेखांकित करेगा लेकिन जावा में आप ऐसा नहीं कर सकते क्योंकि वीएम को पता नहीं है कि फ़ंक्शन का संदर्भ दिया जाएगा या नहीं (एओपी, एस्पेक्टजे आदि का उपयोग करके)। – cletus
@cletus वीएम सभी जावा बाइटकोड निर्देशों का व्याख्या करता है, और इसलिए, इसके बारे में पता है - बाइट-कोड बुनाई उपकरण जैसे कि AspectJ –
@binil, माइकल द्वारा किए गए संशोधनों में भी संशोधन: जब तक गेटटर अंतिम नहीं होता तब तक यह कैसे काम करता है? गेटटर को ओवरराइड करने वाले उप-वर्गों के बारे में क्या? – Thilo
की तरह दिखना चाहिए मैं तुम्हारे लिए दो जवाब है:
दूसरी तरफ, 'get' विधियां अक्सर किसी भी तरह से encapsulation तोड़ती हैं (विशेष रूप से यदि' सेट 'विधि के साथ)। –
सैद्धांतिक रूप से एक विधि कॉल किए जाने के कारण सैद्धांतिक रूप से कुछ रनटाइम जुर्माना होता है। हकीकत में, इस दो कारणों से समग्र प्रदर्शन पर बहुत कम प्रभाव पड़ता है:
obj.getA()
जब तक अपने कार्यक्रम के आंतरिक सबसे पाश अंदर हो रही है, तो अपने कोड के समग्र प्रदर्शन पर उसके प्रभाव होगा नगण्य होना जब प्रदर्शन एक मुद्दा है तो आपको अपने कोड की बाधा पर विचार करना चाहिए। कोड को अनुकूलित करने में कोई बात नहीं है जो इन हॉट स्पॉट्स पर नहीं है। इन स्पॉट्स को पहचानने के लिए आपको profiler के माध्यम से अपने कोड के निष्पादन का विश्लेषण करने की आवश्यकता है।
प्रदर्शन-में-एक-वैक्यूम प्रश्न बेकार हैं। अपने आवेदन में प्रदर्शन-संवेदनशील पट्टी में यह निर्धारित करने के बाद इसे स्वयं प्रोफाइल करें। – djechlin