We’re going to be discussing efficient JavaScript in some upcoming training sessions, and I wanted to get this code snippet out for discussion.
Commonly, developers will process an array of values, calling some pre-defined function with this idion:
var i=values.length;
while (i--){
    process(values[i]);
}
In most modern browsers, this is fairly efficient that for small enough objects it does present much of a performance bottle-neck. For large arrays on less modern browsers, this can cause performance slow-downs. Nicholas C. Zakas (@slicknet) in his book, Even Faster Web Sites (O’Rielly) presents a faster alternative.
var iterations = Math.floor(values.length / 8);
var leftover = values.length % 8;
var i = 0;
if (leftover > 0){
    do {
        process(values[i++]);
    } while (--leftover > 0);
}
do {
    process(values[i++]);
    process(values[i++]);
    process(values[i++]);
    process(values[i++]);
    process(values[i++]);
    process(values[i++]);
    process(values[i++]);
    process(values[i++]);
} while (--iterations > 0);
From Speed Up Your Site (New Riders).