After reading an article about optimizing loops in JavaScript, I put together this page to test the ideas presented. Basically, this just increments a counter one million times and displays the elapsed time. Pretty simple.
Update: I found another article that describes a JavaScript implementation of Duff's Device, an even more efficient way of doing loops. It works!
Update (Feb 8, 2006): I've applied the do/while technique below to a new test of JavaScript optimization for a custom in_array() method (emulating the PHP function of the same name).
Slower | Faster | Duff's |
---|---|---|
function doSlow() { /* common code */ for (l=1;l<iterations+1;l++) { testVal++; } /* common code */ } |
function doFast() { /* common code */ l = iterations; do { testVal++; } while (--l); /* common code */ } |
function doDuffs() { /* common code */ n = iterations % 8; while (n--) { testVal++; } n = parseInt(iterations/8); while (n--) { testVal++; testVal++; testVal++; testVal++; testVal++; testVal++; testVal++; testVal++; } /* common code */ } |