Asm.js对编译器的限制
asm.js limits on the compiler
我想知道asm.js规范中是否有任何"设计限制",可以阻止任何编译器直接从中生成本机汇编代码。
现在火狐似乎能达到原生代码一半的速度,但我想知道为什么它不能以原生速度运行。在我看来,asm.js很像asm.
当前限制使用Typed Array
类型的Javascript作为内存(即stack和heap)。这是由于其他脚本与您的asm.js生成的Javascript交互,并且需要共享的"内存"空间。此外,我猜Typed Array
是作为实际的堆内存实现的,这将比使用堆栈慢。
因为Firefox的编译器没有像C编译器那样对asm.js代码进行那么多的优化。在Windows上,也是因为编译后的代码必须为数组访问执行边界检查(在其他操作系统上,Firefox的asm.js编译器OdinMonkey使用内存保护)。
相关文章:
- JS编译器/包管理器,用于版本控制
- 为其他JS生成定义“;编译器”;来自TypeScript定义文件
- 致Jeff Haynie:为什么appcelerator要打包JS编译器
- 使用 Node.js 作为项目中的独立 LESS 编译器
- JS 编译器删除正则表达式中的转义 () 字符
- Broccoli.js 和 Ember-CLI :试图让 SCSS 编译器工作
- 使用 Gulp.js 模板编译器呈现 HTML
- 使用闭包编译器时出现非法字符错误.jar使用 ANT 进行 r.js 优化
- 闭包编译器和Prototype.js:危险的使用
- 闭包编译器--包括目录中的所有.js文件
- 解析PHP;s与JS混合用于谷歌闭包编译器
- 如何通知TypeScript编译器JS数组原型的扩展
- JS缩小/闭包编译器将数字从基数10更改为其他数
- 我怎么能保留js的评论只是在哪里,他们与闭包编译器
- 让闭包编译器和Node.js发挥得很好
- TypeScript编译器无法在for of循环中找到immutable.js Map迭代器
- 移除Google闭包编译器对最小化js的警告
- 当使用Google Closure编译器时,在浏览器和node.js之间共享JS的最佳方式
- 如何防止JS代码被编译器解析/评估
- Sort()函数:JS编译器如何知道A和B是什么