Mozilla 将主攻 WebAssembly 的性能和特性

栏目: 后端 · 前端 · 发布时间: 5年前

内容简介:Mozilla 在尽可能地提升 WebAssembly 的性能。在最新版本的 Firefox 中,JavaScript 和 WebAssembly 之间的调用现在比非内联的 JavaScript 到 JavaScript 函数调用还要快。Mozilla 还希望超越最近,Mozilla 优化了 JavaScript 和 WebAssembly 之间的调用,并提升了从 WebAssembly 调用内建程序的速度。这些成果的取得得益于两个方面的改进:通过消除组织堆栈帧的不必要工作来减少“簿记(bookkeepi

Mozilla 在尽可能地提升 WebAssembly 的性能。在最新版本的 Firefox 中,JavaScript 和 WebAssembly 之间的调用现在比非内联的 JavaScript 到 JavaScript 函数调用还要快。Mozilla 还希望超越 MVP 状态 ,使 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 提供的一份内容丰富的 介绍

英文原文

https://www.infoq.com/news/2018/11/mozilla-webassembly-performance


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网络多人游戏架构与编程

网络多人游戏架构与编程

格雷泽 (Joshua Glazer)、马达夫 (Sanjay Madhav) / 王晓慧、张国鑫 / 人民邮电出版社 / 2017-10-1 / CNY 109.00

本书是一本深入探讨关于网络多人游戏编程的图书。 全书分为13章,从网络游戏的基本概念、互联网、伯克利套接字、对象序列化、对象复制、网络拓扑和游戏案例、延迟、抖动和可靠性、改进的延迟处理、可扩展性、安全性、真实世界的引擎、玩家服务、云托管专用服务器等方面深入介绍了网络多人游戏开发的知识,既全面又详尽地剖析了众多核心概念。 本书的多数示例基于C++编写,适合对C++有一定了解的读者阅读。本......一起来看看 《网络多人游戏架构与编程》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具