0

ドキュメント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 のコンパイルが役立つ場所に関するドキュメントはありますか?

4

0 に答える 0