Я знаю, что в браузере это более оптимально написать цикл вдоль линийNodeJS для оптимизации контура
for(var i=0, l=arr.length; i<l; i++){ }
вместо
for(var i=0; i<arr.length; i++){ }
Но это верно в NodeJS или делает Двигатель V8 оптимизирует его?
Я знаю, что в ecma-262 5.1 sec-15.4 длины массива определяется как, например:
Значение свойства длины численно больше, чем имя каждого свойства, имя которого является индексом массива; когда свойство объекта Array создается или изменяется, другие свойства корректируются по мере необходимости для поддержания этого инварианта.
Таким образом, если длина не изменяется, единственная причина, по которой этот метод будет медленнее, заключается в том, что вам нужно получить доступ к свойству. То, что я ищу, является разумным примером/объяснением, которое показывает, влияет ли двигатель V8 (который используется в NodeJS) на производительность при доступе к этому свойству.
говорить о микро-оптимизации ... –
Я думаю, что нет оптимизации, потому что это утверждение, которое нужно проверять каждый цикл – Hacketo
@AmitJoki, это правда, это микро-оптимизация, но я лучше буду спать ночью, зная ответ :) –