두 개의 루프 (하나는 다른 하나에 중첩 됨)가 있으며이 루프를 중첩하는 방법에 어떤 차이가 있는지 궁금합니다. 코드 1과 코드 2의 결과는 동일하지만 (100,000x4 = 4x100,000 = 400,000), jsPerf은 코드 2가 코드 1보다 대략 50 % 빠르다는 것을 보여줍니다.두 개의 루프 성능 차이. 내부 및 외부 루프 교환
자문을 구하고 싶습니다. 나는 둘의 차이를 이해하지 못한다.
대단히 감사합니다.
var tt = function() {
// do some stuff
// for example:
return (3);
};
테스트 코드 1 :
for (var i = 0; i < 100000; i++) {
for (var j = 0; j < 4; j++) {
tt();
}
}
테스트 코드 2 : 각 작업은 비용을 가진 것처럼
for (var j = 0; j < 4; j++) {
for (var i = 0; i < 100000; i++) {
tt();
}
}
가능한 복제본 http://stackoverflow.com/q/11227809/1903116 – thefourtheye
이 질문은 제안 된 속임수와 관련이있는 유일한 질문은 "성능"태그가 있다는 것입니다.) 그것은 완전히 다른 언어입니다.이 언어는 정렬을 포함하지 않습니다. – paxdiablo
@ paxdiablo 나는 내부 루프가 첫 번째 경우에 곧 종료되지 않을 것이라고 프로세서가 베팅한다고 추측 하겠지만 매번 실패합니다. 그래서, 그것은 재정렬되어야하고 너무 많은 비용이 듭니다. – thefourtheye