Увеличивает ли хранение в переменных производительность?И влияют ли var, let, const на производительность? - PullRequest
2 голосов
/ 13 мая 2019

Например, в приложении узла, используя экспресс, вместо использования:

app.listen(3000);

мы используем:

const port = 3000;
app.listen(port)

Повысит ли это производительность, хотя неважно насколько она мала? Я слышал, например, что это улучшает производительность петель.

И не по теме: разве функция app.listen () не является циклом? Или он использует встроенный цикл?

Кроме того, отличается ли объявление с помощью var, let или const по производительности? Например, поскольку объявление с помощью const - вместо var или let - подразумевает, что переменная 'port' остается без изменений, будет ли это иметь какой-либо эффект?

1 Ответ

3 голосов
/ 13 мая 2019

Нет, простое сохранение значения в переменной не увеличивает производительность, фактически производительность будет несколько снижена, поскольку происходит выделение и выборка дополнительной памяти.

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

Преобразование app.listen(3000) в приведенный ниже формат не дает никакого выигрыша в производительности.

const port = 3000;
app.listen(port)

Однако, если для значений port требуются некоторые вычисления, такие как

const port = process.env.PORT || 3000;

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

(В вашем примере, поскольку значение port используется только один раз, нет смысла сохранять результат в переменной.)

Я слышалНапример, это улучшает производительность циклов.Опять же, вы получаете выигрыш в производительности, только если значение, хранящееся в переменной, требует какой-либо формы вычислений.

const array = [1,2,3];
const length = array.length;
for (let i =0 ;i<length; i++) {
  console.log(array[i]);
}

Приведенный выше пример имеет преимущества в производительности по сравнению с приведенным ниже.

const array = [1,2,3];
for (let i =0 ;i<array.length; i++) {
  console.log(array[i]);
}

В этом примере в каждой итерации цикла должна быть рассчитана длина массива, которая не является необходимой, поскольку массив не изменяется.

И не по теме: isnфункция app.listen () вроде цикла?Или он использует встроенный цикл?

Нет, app.listen() - это не цикл.Это слушатель событий.Внутренне цикл событий узла обрабатывает такие операции ввода / вывода.Вы можете прочитать больше о цикле событий здесь .

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