कोड के मामले में जहां आपको एक फ़ंक्शन से बाहर निकलने से पहले संसाधन सफाई करना पड़ता है, क्या ऐसा करने के इन 2 तरीकों के बीच एक प्रमुख प्रदर्शन अंतर है।
हर रिटर्न स्टेटमेंट से पहले संसाधन की सफाई
void func() { login(); bool ret = dosomething(); if(ret == false) { logout(); return; } ret = dosomethingelse(); if(ret == false) { logout(); return; } dootherstuff(); logout(); }अंत में ब्लॉक में संसाधन की सफाई
void func() { login(); try { bool ret = dosomething(); if(ret == false) return; ret = dosomethingelse(); if(ret == false) return; dootherstuff(); } finally { logout(); } }
मैंने नमूना कार्यक्रमों में कुछ बुनियादी परीक्षण किए और इसमें बहुत अंतर नहीं है। मैं ऐसा finallyकरने के तरीके को बहुत पसंद करता हूं - लेकिन मैं सोच रहा था कि क्या यह किसी बड़े प्रोजेक्ट में प्रदर्शन का कारण बनेगा।
if(!cond), तो यह जावा है जिसने मुझे ऐसा किया है। C ++ में, यह है कि मैं दोनों बूलियन का कोड कैसे लिखता हूं और अन्य प्रकारों के लिए भी - यानी int x; if(!x)। चूँकि जावा मुझे केवल इसके लिए उपयोग करने की अनुमति देता है booleans, इसलिए मैंने जावा में if(cond)& का उपयोग करना पूरी तरह से बंद कर दिया है if(!cond)।
(someIntValue != 0)बूलियन का मूल्यांकन करने के बजाय तुलना करने के बजाय बहुत कुछ देखूंगा । यह मेरे लिए बदबू आ रही है, और जब मैं इसे जंगली में देखता हूं तो मैं तुरंत इसे रिफ्लेक्टर करता हूं।