Использование макросов gcc, вероятно, маловероятно

Я пишу критический фрагмент кода примерно со следующей логикой

if(expression is true){
   //do something with extremely low latency before the nuke blows up. This branch is entered rarely, but it is the most important case
}else{
   //do unimportant thing that doesnt really matter
}

Я думаю использовать макрос вероятно()вокруг выражения, поэтому, когда он попадает в важную ветку, я получаю минимальную задержку.

Мой вопрос заключается в том, что использование действительно противоположно предложению имени макроса, потому что я выбираю маловероятнуюветвь для предварительной выборки, т. е. важная ветвь вряд ли произойдет, но она наиболее критическаявещь, когда это происходит.

Есть ли в этом явный недостаток с точки зрения производительности?

12
задан 眠りネロク 16 August 2019 в 16:16
поделиться