javascript - 按位运算如何提高Asm.js的性能?

在Asm.js定义的第一行,有一个基于Asm.js的代码示例,该示例说明按位操作有助于获得更快的JS代码:

HEAP32[p >> 2]|0


要么

(x+y)|0


我的问题是,此操作如何提高性能?在Asm.js或Emscripten生成的JS代码中多次使用此按位运算符的背后原因是什么?

最佳答案

按位运算符强制其操作数为整数值。与调用Math.floor等相比,这是一种相当快的转换方式。请注意,

p >> 2


(对于p的非负值)与Math.floor(p / 4)相同。

本文翻译自 https://stackoverflow.com/questions/23436159/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 javascript bit-manipulation emscripten asm.js


相关文章:

c++ - 为什么移位超过允许的位仍然有效?

c++ - 将emscripten与opengl着色器一起使用

c++ - 将HTML5画布数据(rgba)发送到asm.js。 C ++ / JavaScript中的数组类型

javascript - 在浏览器(F11)中检测到全屏模式时,使页眉消失

javascript - 是否有可用的JavaScript性能比较表? [关闭]

c++ - 考虑长度的位运算滤波器

javascript - 使用Web程序集的Web Worker中的错误

javascript - 如何计算VU量表的对数标签?

javascript - React的状态如何通过使用传播算子来保存文件?

javascript - 为什么右移右数有时会导致负数?