কোডের ক্ষেত্রে যেখানে কোনও ফাংশন থেকে বেরিয়ে আসার আগে আপনাকে কোনও রিসোর্স ক্লিনআপ করতে হবে, সেখানে এটি করার 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)
বুলেঁদের মূল্যায়ন না করে তুলনা করার চেয়ে বরং দেখতে চাই । এটি আমার কাছে দুর্গন্ধযুক্ত এবং আমি বন্যের মধ্যে এটি দেখতে পেয়ে সঙ্গে সঙ্গে এটিকে পুনরায় চুল্লী করি।