eval kills

JavaScript performance comparison

Revision 4 of this test case created

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
with eval
(function () {
        eval("var str=\'hello world\'");
        var size, x, y, i, fac, Ci, Zr, Zi, Cr, ZrN, ZiN, line;

        size = 2000;

        fac = 2.0 / size;

        line = new Array(size);

        for (y = 0; y < size; y++) {
                Ci = y * fac - 1.0;
                for (x = 0; x < size ; x++) {
                        Zr = 0.0;
                        Zi = 0.0;
                        Cr = x * fac - 1.5;
                        i = 50;
                        ZrN = 0;
                        ZiN = 0;
                        for (i = 50; i > 0 && ZiN + ZrN <= 4.0; --i) {
                                Zi = 2.0 * Zr * Zi + Ci;
                                Zr = ZrN - ZiN + Cr;
                                ZiN = Zi * Zi;
                                ZrN = Zr * Zr;
                        }
                        if (i > 0) {
                                line[x]='0';
                        } else {
                                line[x]='1';
                        }
                }
        }
        eval("str+=line.join('');");
}());
pending…
without eval
(function () {
        var str="hello world";
        var size, x, y, i, fac, Ci, Zr, Zi, Cr, ZrN, ZiN, line;

        size = 2000;

        fac = 2.0 / size;

        line = new Array(size);

        for (y = 0; y < size; y++) {
                Ci = y * fac - 1.0;
                for (x = 0; x < size ; x++) {
                        Zr = 0.0;
                        Zi = 0.0;
                        Cr = x * fac - 1.5;
                        i = 50;
                        ZrN = 0;
                        ZiN = 0;
                        for (i = 50; i > 0 && ZiN + ZrN <= 4.0; --i) {
                                Zi = 2.0 * Zr * Zi + Ci;
                                Zr = ZrN - ZiN + Cr;
                                ZiN = Zi * Zi;
                                ZrN = Zr * Zr;
                        }
                        if (i > 0) {
                                line[x]='0';
                        } else {
                                line[x]='1';
                        }
                }
        }
        str+=line.join('');
}());
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:

1 comment

John-David Dalton commented :

Now you've crippled rev 4 so it's sooo slow it can't accurately be read by the benchmark runner and returning extremely high margins of error like ±93.97%.

Add a comment