각 루프 반복에서 배열 조회를 수행하는 것보다 루프에서 읽은 배열을 캐싱 할 때 성능이 향상됩니까?루프 내에서 배열 조회를 캐싱 할 때 성능이 향상 되었습니까?
for (var i = 0; i < HEADER_DATA_KEYS.length; i++) {
var headerKey = HEADER_DATA_KEYS[i];
var msgVal = message[headerKey];
doStuff(msgVal);
}
대 :
for (var i = 0; i < HEADER_DATA_KEYS.length; i++) {
var msgVal = message[HEADER_DATA_KEYS[i]];
doStuff(msgVal);
}
편집 : 메모이 제이션의 예, 죄송합니다 잘못 사용. 고맙습니다!
http://jsperf.com을 시도하십시오. 그리고 두 샘플 모두 똑같이 보입니다. –
메모가 표시되지 않습니까? 두 예제 모두 동등합니다 ... 두 번째 예제에서는 변수 선언/할당이 하나 더 적지 만 성능 측면에서는 많이 변경하면 안됩니다. – plalx
이 상황에서 나는이 메모를하지 않을 것입니다. 배열 값을 지역 변수에 할당하는 것뿐입니다. 자바 스크립트 컴파일러에 관한 한이 두 변수의 차이는 없습니다. –