LINUX.ORG.RU

GCC - оптимизация блоков if


0

0


Помню, читал где-то, что в гцц можно указать какой наиболее вероятный ответ блока if,для оптимизации скорости выполнения.
на пример в следующем коде:

. if(check_condition()){
. do_something(); //часто
. }
. else{
. do_something_else(); //редко
.}

только в одном случае из 10000 функция check_condition возвращает true. Как намекнуть об этом компилятору?

искал в гугле на тему gcc optimize conditions , но ничего попутного не нашел.
П.С: проблемы портабильности меня не интересуют

★★

как явно указать gcc не знаю, но например в интеловских руководствах по оптимизации рекомендуется в целях улучшения предсказания ветвления располагать наиболее вероятный код сразу после if

Mr_Nobody
()
Ответ на: комментарий от Mr_Nobody

Как вариант, можно переписать if на ассемблере, указав наиболее вероятный результат по ветке выполнения условия.

anonymous_incognito ★★★★★
()

if(__builtin_expect(check_condition(), true)) ...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.