Delayed Mouse Tracking

JavaScript

var array = new Array();
for (var i = 0; i < 10000000; i++) { array.push(1); }

function output(diff, val, title) { 
    document.write( '<div style="margin-bottom:1em;">'
                  + '<div style="font-weight:bold;">' 
                    + (title||"")
                  + '</div>'
                  + '<div>sum:  ' + val  + '</div>'
                  + '<div>time: ' + diff + '</div>'
                  + '</div>'
                  ); 
}

var start = (new Date).getTime(),    diff = 0;
var sum = 0;
for (var i = 0; i < array.length; i++) { sum = sum + array[i]; }
diff = (new Date).getTime() - start;
output(diff, sum, 'For Loop: Standard');


var start = (new Date).getTime(),    diff = 0;
var sum = 0;
for (var i = 0, n = array.length; i < n; i++) { sum += array[i]; }
diff = (new Date).getTime() - start;
output(diff, sum, 'For Loop: Length Caching (forward)');


var start = (new Date).getTime(),    diff = 0;
var sum = 0;
for (var i = 0, n = array.length; n > i; n--) { sum += array[i]; }
diff = (new Date).getTime() - start;
output(diff, sum, 'For Loop: Length Caching (reverse)');


var start = (new Date).getTime(),    diff = 0;
var sum = array.reduce(function(pv, cv) { return pv + cv;}, 0);
diff = (new Date).getTime() - start;
output(diff, sum, 'Array.reduce Function');


var start = (new Date).getTime(),    diff = 0;
var sum = 0;
for (var i = 0, node; node = array[i++];) { sum += node; }
diff = (new Date).getTime() - start;
output(diff, sum, 'For Loop: Element Assignment (forward)');


var start = (new Date).getTime(),    diff = 0;
var sum = 0;
for (var i=array.length-1, node; node = array[i--];) { sum += node; }
diff = (new Date).getTime() - start;
output(diff, sum, 'For Loop: Element Assignment (reverse)');


var start = (new Date).getTime(),    diff = 0;
sum = 0;
for (var i = array.length; i--;) { sum += array[i]; }
diff = (new Date).getTime() - start;
output(diff, sum, 'For Loop: Length Traversal (reverse)');


var start = (new Date).getTime(),    diff =...