Math And JS Fun

JavaScript performance comparison

Test case created

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    function equalsTen () {
        var data = [0,1,2,3,4,5,6,7,8,9];
        var dataLen = data.length;
        for (var i=0; i<dataLen; i++) {
            var diff = 10-data[i];
            for (var j=0; j<dataLen; j++) {
                if (j != i && data[j] == diff) {
                    //document.write(data[i]+" and "+data[j]+" are a match <br>");
                    return true;
                }
            }
        }
        //document.write("no matches<br>");
        return false;
    }
   
    function equalsTen2 () {
        var data = [0,1,2,3,4,5,6,7,8,9];
        var dataLen = data.length;
        for (var i=0; i<dataLen; i++) {
            var diff = 10-data[i];
            var result = data.indexOf(diff);
            if (result > -1 && result != i) {
                //document.write(data[i]+" and "+data[result]+" are a match <br>");
                return true;
            }
        }
        //document.write("no matches<br>");
        return false;
    }
   
    function equalsTen3 () {
        var data = [0,1,2,3,4,5,6,7,8,9];
        while (data.length > 0) {
            var val = data.shift();
            var diff = 10-val;
            for (var i=0, j=data.length; i<j; i++) {
                if (data[i] == diff) {
                    //document.write(val+" and "+data[i]+" are a match <br>");
                    return true;
                }
            }
        }
        //document.write("no matches<br>");
        return false;
    }
   
    function equalsTen4 () {
        var data = [0,1,2,3,4,5,6,7,8,9];
        while (data.length > 0) {
            var val = data.shift();
            var diff = 10-val;
            var result = data.indexOf(diff);
            if (result > -1) {
                //document.write(val +" and "+data[result]+" are a match <br>");
                return true;
            }
        }
        //document.write("no matches<br>");
        return false;
    }
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
2 Loops
equalsTen();
pending…
Loop & Index-Of
equalsTen2();
pending…
While & loop
equalsTen3();
pending…
While & index-Of
equalsTen4();
pending…

You can edit these tests or add even more tests to this page by appending /edit to the URL.

Compare results of other browsers

0 comments

Add a comment