为什么asm.js在这种情况下速度相同或更慢?

时间:2013-06-18 06:54:01

标签: javascript firefox asm.js

我正在测试文档here中的一些asm.js编译。基于他们的例子,我在Firefox 22中尝试了这个:

function DiagModule(stdlib) {

    var sqrt = stdlib.Math.sqrt;

    function square(x) {
        x = +x;
        return +(x*x);
    }

    function diag(x, y) {
        x = +x;
        y = +y;
        return +sqrt(square(x) + square(y));
    }

    function many() {
        for (var i=0; i<2000000; i=(i+1)|0) {
            diag(+3000000-i,i);
        }
    }
    return { many:many };
}

var fast = DiagModule(window);

function testit() {
    console.time('test');
    console.log('diag test...');
    fast.many();
    console.timeEnd('test');
}

奇怪的是,当我在“function DiagModule”之后的行上启用“use js”编译时,没有性能提升。在早期的测试中它甚至运行得更慢。是否必须完全转换,使用堆而不是变量来注意速度差异?或者是否有任何关于asm.js编译可能有益的文档?

0 个答案:

没有答案