asmjs

JavaScript performance comparison

Revision 9 of this test case created by Calvin Metcalf

Preparation code

<script>
var withasm = (function(stdlib){
 "use asm";
function mandlebrot(cx, cy, maxIter) {
       cx = +cx;
        cy = +cy;
        maxIter = maxIter|0;
        var iter=0;
        var xn= 0.0;
        var x = 0.0;
        var y = 0.0;
        while ( ((x*x + y*y) < 4.0)&((iter|0) < (maxIter|0))) {
            xn = +( x*x - y*y + cx);
            y = +((x*y)*2.0 + cy);
            x = +xn;
            iter=(iter+1)|0;
        }
       
        return iter|0;
    }
return {    mandlebrot: mandlebrot}
})(window)

var withoutasm = (function(stdlib){

function mandlebrot(cx, cy, maxIter) {
       cx = +cx;
        cy = +cy;
        maxIter = maxIter|0;
        var iter=0;
        var xn= 0.0;
        var x = 0.0;
        var y = 0.0;
        while ( ((x*x + y*y) < 4.0)&((iter|0) < (maxIter|0))) {
            xn = +( x*x - y*y + cx);
            y = +((x*y)*2.0 + cy);
            x = +xn;
            iter=(iter+1)|0;
        }
       
        return iter|0;
    }
return {    mandlebrot: mandlebrot}
})(window)
</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
asm
withasm.mandlebrot(0,0,500)
pending…
No ASM
withoutasm.mandlebrot(0,0,500)
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment