Javascript 为什么即使在firefox中,asmjs代码也会变慢?

Javascript 为什么即使在firefox中,asmjs代码也会变慢?,javascript,asm.js,Javascript,Asm.js,我创建了一个jsPref来测试asm.js: 我想我做错了什么,因为asmjs代码的运行速度比常规js代码慢两倍,即使是在firefox中也是如此 我不知道代码里出了什么问题 提前感谢, 编辑: asm: 常规: var _diag = Math.sqrt(Math.pow(10, 2) + Math.pow(100, 2)) 调用asm.js函数表单js时会有很大的开销,而您正在进行基准测试的函数没有做足够的工作来弥补调用开销 当您使用asm.js函数时,请尝试最小化asmJS通信,并在a

我创建了一个jsPref来测试asm.js:

我想我做错了什么,因为asmjs代码的运行速度比常规js代码慢两倍,即使是在firefox中也是如此

我不知道代码里出了什么问题

提前感谢,


编辑:

asm:

常规:

var _diag = Math.sqrt(Math.pow(10, 2) + Math.pow(100, 2))
  • 调用asm.js函数表单js时会有很大的开销,而您正在进行基准测试的函数没有做足够的工作来弥补调用开销

    当您使用asm.js函数时,请尝试最小化asmJS通信,并在asm.js模块中执行更大的工作

  • jsperf强制asm.js模块在测试期间重新编译多次,但Firefox还不支持重新编译,因此jsperf测试永远不会在asm.js模式下运行


  • 刚刚偶然发现了这个asm.js东西-听起来很棒。我尝试稍微修改一下测试,使两个测试中的情况在函数调用、属性查找等方面尽可能相似


    我想,需要一段更大的代码——繁重的数学是它可能擅长的地方。我将密切关注asm.js的开发。

    所以请展示一些代码!最好在您的问题中包含代码并提供链接作为附加手段。Firefox 22中会添加asm.js的AFAIK支持,即使在Firefox夜间运行,它也会运行得较慢。
    var _diag = diag(10, 100);
    
    var _diag = Math.sqrt(Math.pow(10, 2) + Math.pow(100, 2))