Продвижение функции в глобальную по соображениям производительности? - PullRequest
2 голосов
/ 15 октября 2010

Я просматривал какой-то код и видел эти комментарии. Как продвижение функции к глобальной производительности помогает?

// this function is promoted to be global
// to make firefoxs jit happy - URGH

function clamp(x, min, max) {
if(x < min) return min;
if(x > max) return max-1;
return x;
}

1 Ответ

2 голосов
/ 15 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...