I have read about loop optimization (N.Zakas, Javascript Optimization). There, it was written that using inverse loop
for arrays
is more optimized than direct loop. It seems completely logical:
for(var i = 0; i < length; i++){...}
- checks condition
- increases variable i
for(i = length;i--;)
- checks condition + increases variable i
(in one expression)
But, I've got unexpected result for Chrome.
var len = 100000000,
arr = new Array(len),
i = len - 1,
start = new Date(),
end;
for(i = 0; i < len; i++){
arr[i] = 1;
}
end = new Date();
console.log(end - start);
Direct loop return result near 4500ms, but inversed loop... 9500ms!
Why?