Объявленная производительность по сравнению со строкой в ​​JS - PullRequest
0 голосов
/ 09 ноября 2011

Просто подсказка: гораздо более семантически написать код вроде:

var b   = 'lorem';
var f   = 'ipsum';

for ( var i = 0; i < 1000; i++ )
{
    b   = b + f;
}

Интересно, сколько накладных расходов, имеющих объявленный var, влияет, например, на производительность JS, в отличие от (более сложного ИМХО):

var b   = 'lorem';

for ( var i = 0; i < 1000; i++ )
{
    b   = b + 'ipsum';
}

Это лишь небольшой пример, но я пытаюсь подумать о том, как это может повлиять на огромную кодовую базу большого приложения, есть ли у кого-нибудь какие-либо данные или данные о производительности?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Я подозреваю, что с большинством современных интерпретаторов JS разница должна быть от пренебрежимо малой до нуля (учитывая, что переменная f всегда локальна, без сложных вычислений).Я подозреваю, что современные интерпретаторы JS (по крайней мере, на основе браузера) сначала проанализируют код.Я не ожидаю, что они «скомпилируют» код для получения точных результатов (слишком сложных), но следует ввести некоторый уровень оптимизации, отсюда и незначительную разницу в производительности.
В более сложном примере, где генерируется строкав некоторой более сложной манере разница должна быть в пользу строкового литерала.

Здесь я исхожу из предположения, что современные интерпретаторы JS всегда успевают проанализировать код и ввести некоторые «дешевые» оптимизации в код

0 голосов
/ 09 ноября 2011

Так как нет общего Javascript-интерпретатора, но есть много разных, которые могут отличаться от реализации к реализации.Для всех вопросов производительности: Лучше всего измерить это.Потратьте время до и после цикла.

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