为(潜在的)未来浏览器汇编语言优化优化JavaScript的最佳实践是什么?
What are the best practices for optimising JavaScript for (potential) future browser assembly-language optimisations?
据我所知,Chrome中的V8引擎已经使用汇编级优化一段时间了,现在(在撰写本文时)即将发布的Firefox上的OdinMonkey表明,正在为JavaScript编写广泛的低级优化。
我希望这是在SO的礼仪范围内,但我的问题是三重…
-
(一个特定的问题,我想可能会被编辑掉)-关于Firefox的OdinMonkey/asm.js优化-这是"我们"必须专门编码的东西吗?还是它与V8引擎相似,都是在"幕后"完成的?在这个特定的话题上,我所看到的来源似乎都是矛盾的。
-
更一般地说(也许是一个更相关的问题),是否有关于更好地"提前"/汇编/等编码JavaScript的最佳实践。优化?例如,我读到使用位移位到整数可能会改善优化,但是,取决于浏览器,它可能导致很少甚至没有收获。
-
将其纳入第三个问题以防止混淆-最后,客户端组装级优化是徒劳的吗?"我们"作为编码人员是否应该尽我们所能地编写高效的JavaScript代码,并让优化过程发挥其最大的作用?
您必须通过仅使用低级结构和严格类型来专门针对asm.js。只要有一次违反asm.js的限制,就会导致整个编译过程中断,并返回到普通的JS虚拟机。
你不能仅仅通过调整现有的JS代码来利用asm.js。不能保证asm. JS风格的JS在普通JS VM中会更快。它可能更适合于优化,但OTOH asm.js需要大量的类型转换,其他vm可能无法优化。
对于V8和其他Firefox的VM Zoo规则是一样的——不要混合类型,不要在任何地方使用eval
或with
,等等
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 以可优化的方式使用requirejs加载模板
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- 使用优化器在慢速连接上加载main.js时需要js超时
- JavaScript数组优化以提高性能
- javascript导入的最佳实践是什么
- MobileFirst:在客户端运行计时器作业-最佳选项
- 为(潜在的)未来浏览器汇编语言优化优化JavaScript的最佳实践是什么?
- 优化大型jquery POST的最佳方法是什么?
- 获取和存储数据(优化)到移动应用程序(Ionic, Cordova/Phonegap)的最佳方式
- 有没有办法“;优化“;这个简单的函数?(我是否没有遵循最佳实践?)
- 如何优化jQuery以获得最佳性能?
- 优化jQuery选择器的最佳方法及其原因