কোডের ক্ষেত্রে যেখানে কোনও ফাংশন থেকে বেরিয়ে আসার আগে আপনাকে কোনও রিসোর্স ক্লিনআপ করতে হবে, সেখানে এটি করার 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), তবে এটি জাভা যা আমাকে এটি করতে বাধ্য করেছিল। সি ++ তে, আমি উভয় বুলেটিয়ান এবং অন্য ধরণের জন্য কোড লিখি - যেমন int x; if(!x)। যেহেতু জাভা আমাকে কেবল এটির জন্য ব্যবহার করতে দেয় booleans, তাই আমি জাবা if(cond)& if(!cond)তে সম্পূর্ণভাবে ব্যবহার বন্ধ করে দিয়েছি ।
(someIntValue != 0)বুলেঁদের মূল্যায়ন না করে তুলনা করার চেয়ে বরং দেখতে চাই । এটি আমার কাছে দুর্গন্ধযুক্ত এবং আমি বন্যের মধ্যে এটি দেখতে পেয়ে সঙ্গে সঙ্গে এটিকে পুনরায় চুল্লী করি।