Вызов функциональных функций на кадр

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

У меня много проверок (щелчков кнопок, коллизий и т.д.) Для каждого кадра, но я не хочу ставить все в одну функцию, поэтому я бы разделил их на другие функции и просто назову их:

void Tick()
{
 //Check 1 ..... lots of code
 //Check 2 ...... lots of code
 //Check 3 ..... lots of code
}

в

void Tick()
{
 funcCheck1();
 funcCheck2();
 funcCheck3();
}

void funcCheck1()
{
 //check1 lots of code
}
void funcCheck2()
{
 //check2 lots of code
}
void funcCheck3()
{
 //check3 lots of code
}

Вызывает ли вызов функции на кадр какое-либо влияние на производительность (не встроено). Очевидно, что вторая версия намного читаема.

2 ответа

Вы не можете сказать точно, в частности, что компилятор может автоматически настроить небольшую функцию. Единственный способ убедиться в использовании профилировщика и сравнить два сценария.


Если вы не передаете какие-либо сложные объекты по значению, накладные расходы на вызов нескольких функций вместо того, чтобы помещать весь код в одну функцию, должны быть незначительными (например, поставить функции функции поверх стека, добавить пространство для типа возврата, перейти к начало вызываемого функционального кода)

licensed under cc by-sa 3.0 with attribution.