博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mozilla将主攻WebAssembly的性能和特性
阅读量:5880 次
发布时间:2019-06-19

本文共 1213 字,大约阅读时间需要 4 分钟。

Mozilla在尽可能地提升WebAssembly的性能。在最新版本的Firefox中,JavaScript和WebAssembly之间的调用现在比非内联的JavaScript到JavaScript函数调用还要快。Mozilla还希望超越,使WebAssembly在构建应用程序时更加有用。

最近,Mozilla优化了JavaScript和WebAssembly之间的调用,并提升了从WebAssembly调用内建程序的速度。这些成果的取得得益于两个方面的改进:通过消除组织堆栈帧的不必要工作来减少“簿记(bookkeeping )”以及通过函数之间的直接路径来去掉中转。

在Firefox中,其中一个“JavaScript到JavaScript的速度比JavaScript到WebAssembly的速度快”的场景是内联函数,在这种情况下,函数会重复调用同一个函数,因为编译器会将该函数复制到调用函数中。

Mozilla还放眼WebAssembly的未来,着眼于使WebAssembly切实可用所需的特性集。WebAssembly的MVP功能被认为是完善的:

  • 编译目标(Compile target)

  • 快速执行(Fast execution)

  • 紧凑(Compact)

  • 线性内存(Linear memory)

如果WebAssembly要为重量级桌面应用开发者提供支持,还需要更多的特性:

  • 线程——一个以SharedArrayBuffers为基础的提案;

  • SIMD (单指令多数据执行模式)——积极开发中;

  • 64-bit寻址——计划中;

  • “流式编译(Streaming compilation)” ——在Firefox中已完成,其他浏览器正在积极开发;

  • 隐式HTTP缓存——积极开发中。

对于标准Web开发,还需要以下特性:

  • JS和WebAssembly之间的快速调用——在Firefox中已完成,其他浏览器正在积极开发;

  • 快速简单的数据交换——有多个不同的提案正在积极地讨论中;

  • ES模块集成——提案形成,初始实现正在积极开发;

  • 工具链集成——进行中;

  • 向后兼容——wasm2js工具。

为了满足JavaScript框架和compile-to-JavaScript语言的需要,WebAssembly还有进一步的需要:

  • 垃圾收集——有两份提案正在讨论之中;

  • 异常处理——早期研究和开发阶段;

  • 调试——某些浏览器的调式工具提供了不完善支持;

  • “尾部调用(Tail calls )”——提案讨论中。

在浏览器之外使用WebAssembly还需要满足更多的要求:

  • 可移植接口——提案讨论中;

  • 标准化运行时——有一些正在开发中的早期项目。

WebAssembly刚刚度过了最小可行产品阶段,规范和实现正在非常积极地讨论和开发中。要了解更多关于WebAssembly的现在和未来的信息,请查阅Mozilla提供的一份内容丰富的。

英文原文

转载地址:http://bicix.baihongyu.com/

你可能感兴趣的文章
centos 7下独立的python 2.7环境安装
查看>>
[日常] 算法-单链表的创建
查看>>
前端工程化系列[01]-Bower包管理工具的使用
查看>>
使用 maven 自动将源码打包并发布
查看>>
Spark:求出分组内的TopN
查看>>
Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特
查看>>
关于跨DB增量(增、改)同步两张表的数据小技巧
查看>>
飞秋无法显示局域网好友
查看>>
学员会诊之03:你那惨不忍睹的三层架构
查看>>
vue-04-组件
查看>>
Golang协程与通道整理
查看>>
解决win7远程桌面连接时发生身份验证错误的方法
查看>>
C/C++ 多线程机制
查看>>
js - object.assign 以及浅、深拷贝
查看>>
python mysql Connect Pool mysql连接池 (201
查看>>
Boost在vs2010下的配置
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
20款绝佳的HTML5应用程序示例
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>