Вход

Просмотр полной версии : Переменные и быстродействие


Ppezrk
04.11.2018, 17:05
Есть скрипт. Его перманентная задача - реагировать на действия пользователя. Этот скрипт имеет множество функций, и все они в определенном порядке вызываются когда пользователь совершает какое-либо действие. Естественно, что в теле каждой функции объявляются локальные переменные.
'use strict';
(function () {

function doSomeThing(element) {
let a = ...;
let b = ...;
... do some stuff ...
}

function doSomeThingElse(element) {
let c = ...;
let d = ...;
... do some stuff ...
}

function finishAll(element) {
let foo = ...;
let bar = ...;
... do some stuff ...
}

window.onclick = function(event) {
doSomeThing(event.target);
doSomeThingElse(event.target);
finishAll(event.target);
}

})();
У меня такой вопрос: резонно ли вынести объявление всех этих переменных в начало скрипта ради ускорения его работы?
'use strict';
(function () {

let element, a, b, c, d, foo, bar;

function doSomeThing() {
... do some stuff ...
}

function doSomeThingElse() {
... do some stuff ...
}

function finishAll() {
... do some stuff ...
}

window.onclick = function(event) {
element = event.target;
doSomeThing();
doSomeThingElse();
finishAll();
}

})();

Aetae
04.11.2018, 18:43
Нет, это способ отстрелить себе ногу нахрен.)
Если выигрыш на инициализацию переменных и есть(в чём я сомневаюсь), то он в пределах статистической погрешности и любой другой случайный фактор повлияет сильнее.

Ppezrk
04.11.2018, 18:49
Немного не понял к чему здесь "отстрелить себе ногу", но спасибо за ответ.

Aetae
04.11.2018, 18:57
Легко можно случайно зацепить "чужую" переменною какой-нить функцией и породить сложноуловимый баг.
https://cs9.pikabu.ru/post_img/2017/01/21/6/1484985789192569748.gif

Ppezrk
04.11.2018, 19:33
Предполагается, что все согласовано. Заранее было сказано, что дело касается скрипта, а не большой многомодульной программы весом в пару тонн. А скрипт этот имеет 100 строк и написан он одним человеком. Поэтому я и пытаюсь максимально оптимизировать его работу.

Aetae
04.11.2018, 22:31
Ppezrk, ошибиться можно и в 1 строчке.)