প্রায়শই পরিচিত likelyএবং unlikelyম্যাক্রোগুলি সংকলকটিকে ifসাধারণত কোনও প্রবেশ করা যায় না বা এড়ানো যায় কিনা তা জানতে সাহায্য করে । এটি ব্যবহারের ফলে কিছু (বরং গৌণ) কর্মক্ষমতা উন্নতি হয়।
আমি সম্প্রতি সেগুলি ব্যবহার শুরু করেছি এবং আমি নিশ্চিত নই যে এই জাতীয় সঙ্কেতগুলি কতবার ব্যবহার করা উচিত should আমি বর্তমানে এটির ত্রুটি পরীক্ষা করে ব্যবহার করি ifযা সাধারণত চিহ্নিত করা হয় unlikely। উদাহরণ স্বরূপ:
mem = malloc(size);
if (unlikely(mem == NULL))
goto exit_no_mem;
মনে হচ্ছে ঠিক আছে, তবে ত্রুটি-চেকিং ifবেশিরভাগ ক্ষেত্রে ঘটে এবং ফলস্বরূপ উল্লিখিত ম্যাক্রোগুলির ব্যবহার।
আমার প্রশ্ন হচ্ছে, এটা আছে খুব বেশী হয় likelyএবং unlikelyযে ত্রুটি পরীক্ষা এ ম্যাক্রো if?
আমরা যখন সেখানে থাকি তখন অন্যান্য কোন জায়গাগুলি প্রায়শই ব্যবহৃত হয়?
আমার বর্তমান ব্যবহারে এটি একটি লাইব্রেরিতে রয়েছে যা রিয়েল-টাইম সাবসিস্টেম থেকে বিমূর্ততা তৈরি করে, তাই প্রোগ্রামগুলি আরটিএআই, কিউএনএক্স এবং অন্যদের মধ্যে পোর্টেবল হয়ে উঠবে। এটি বলেছিল যে, বেশিরভাগ ফাংশনগুলি ছোট হয় এবং সরাসরি এক বা দুটি ফাংশন কল করে। অনেকগুলি এমনকি static inlineফাংশন হয়।
সুতরাং, প্রথমত, এটি এমন কোনও অ্যাপ্লিকেশন নয় যা আমি প্রোফাইল করতে পারি। এটি "বোতল-ঘাড় সনাক্তকরণ" করার অর্থবোধ করে না কারণ এটি একটি গ্রন্থাগার, কোনও স্ট্যান্ডেলোন অ্যাপ্লিকেশন নয়।
দ্বিতীয়ত, এটি এমন এক ধরণের "আমি জানি এটি অসম্ভাব্য, আমি পাশাপাশি এটি সংকলককেও বলতে পারি"। আমি সক্রিয়ভাবে এটিকে অপ্টিমাইজ করার চেষ্টা করি না if।
likelyএবং unlikelyবিদ্যমান এবং তারা কী করে। আমি কখনই কোথায় সেগুলি ব্যবহার করা ভাল suggest