Промежуточные переменные - какова стоимость производительности? - PullRequest
0 голосов
/ 01 ноября 2019
const scrollPercent = getScrollPercent();
const mainDivHeight = (mainDivRef.current as any).offsetHeight;
const imgHeight = (imgRef.current as any).offsetHeight;

const offset = ((imgHeight - mainDivHeight) * scrollPercent) / 100;

setBgrImgStyle(x =>
    Object.assign({}, x, { transform: `translateY(-${offset}px)` })
);

Как видно, у нас есть много объявленных const, которые используются только один раз, что означает, что они могут быть просто встроены.

Я часто делаю это для улучшения читабельности, иногда, возможно,слишком много.

Сколько стоит производительность? Код выше - JS, тем не менее, я был бы рад получить независимый от языка ответ.

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

В реальном современном мире?

Скорее всего, нет.

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

Краткий пример:

var get = function(information){
   var name = information.Name;

   if (name == 'john'){var get=function(n){if("john"==n.Name)return!1};
     return false;
   }    
}

сокращен до:

var get=function(n){if("john"==n.Name){return!1}};

Если все, что вы делаете, - это создание более читабельного кода, Webpack / uglification или что-то еще, вероятно, увидит это и внесет необходимые изменения для вас.

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

1 голос
/ 01 ноября 2019

Не беспокойтесь о небольшом приросте производительности, пока операция не будет помещена в процедуру, которая вызывается в цикле сотни тысяч раз. До тех пор, сосредоточьтесь на ясности кода. Если что-то не случится тысячи раз, это не проблема. Возможно, вы могли бы использовать https://jsperf.com, хотя, если вы действительно заботитесь.

...