कोड के मामले में जहां आपको एक फ़ंक्शन से बाहर निकलने से पहले संसाधन सफाई करना पड़ता है, क्या ऐसा करने के इन 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)
बूलियन का मूल्यांकन करने के बजाय तुलना करने के बजाय बहुत कुछ देखूंगा । यह मेरे लिए बदबू आ रही है, और जब मैं इसे जंगली में देखता हूं तो मैं तुरंत इसे रिफ्लेक्टर करता हूं।