GearFans

V1

2022/01/25阅读:56主题:自定义主题1

WebAssembly 虚拟机是什么?为什么应该使用它?

主要收获——WebAssembly(简称:WASM)是一项改变游戏规则的技术。它允许开发者为网络建立可以以接近原生速度运行的应用程序。它将高度优化的代码与非常小的二进制文件结合起来,使得大型应用程序能够通过网络快速平稳地运行。速度快,效率高,再加上用户无需下载或安装就可以进行交互的可能性,这就是为什么 WebAssembly 被称为“web 的未来”。

想象一下这样一个世界:你可以使用任何编程语言构建软件,并在 Web 浏览器中直接向终端用户提供该软件,无需任何安装,并且性能媲美原生。随着 WebAssembly(简称 WASM)的推出,这个曾经看起来难以想象的开发者的乌托邦最近变成了现实。

WebAssembly 是一种在网页中运行编程语言(除了 JavaScript)的方式。从本质上讲,WASM 只是一个运行在所有现代浏览器上的虚拟机。在过去,你需要使用 JavaScript 来运行网页中的代码。通过使用 WASM,我们可以在浏览器中使用 JavaScript 以外的编程语言来运行代码。

例如,这意味着,开发者可以将他们的原生应用程序带到网络上,并在网络浏览器中实现应用程序的全部性能和所有功能——通常在 Windows 或 Mac 上运行本地应用程序时才有的性能。实际上,开发人员也不必直接编写 WASM 代码。相反,他们将使用 WASM 作为用其他语言编写的程序的编译目标。例如,开发者可以使用 Unity 和 C#构建一个游戏,并将其编译到 WASM 中,然后直接在网页浏览器中发布。

这是革命性的举措,因为用户现在可以轻松进入网页与应用程序交互,而无需下载和安装过程——这有时会带来安全风险。然而,WASM 的惊人之处就在于,你可以拥有媲美原生的性能,并且可以跨所有平台使用浏览器,这是一项巨大的工程优势。

WASM 试图解决什么问题?

WASM 试图解决的主要问题是——我们无法在 web 上使用 JavaScript 以外的编程语言。尽管 JavaScript 是一种伟大的编程语言,但它的设计并不是为了在大型应用中实现超高速。WASM 改变游戏规则的地方在于,它以一种绝对安全的方式将用其他编程语言编写的本地应用程序的性能带到了网络上。

WASM 应该在两个主要领域显著提高速度。首先,它应该显著提高应用程序的启动速度。事实上,现在使用 WASM 的应用程序已经能够将应用程序的启动时间缩短一半,而且随着更多的优化,它只会继续进一步提高启动速度。这将允许大型应用程序快速加载。其次,在吞吐量方面,WASM 也具有明显优势,这意味着一旦代码被编译,它将运行得更快——应用程序的效率会更高,响应速度也会更快,这将大大改善用户体验。

WebAssembly 虚拟机的主要优点是什么?

WASM 的速度快,效率高,可移植。代码可以在不同的平台上执行,速度媲美原生。WASM 还具有可读性和可调试性。虽然 WebAssembly 是一种低级语言,但它确实有一种人类可读的文本格式,允许手动编写、查看和调试代码。WASM 非常安全,因为它运行在一个安全的沙箱环境中,就像其他网络代码一样,它将执行浏览器同源和无权限安全策略。

最后的思考

WebAssembly 是运行在现代网络浏览器中的虚拟机,它提供了新的功能,并且性能上得到了显著改善。它提供了一种方法,可以在网络上运行用多种编程语言编写的代码,速度媲美原生。这在以前是绝不可能的。

WASM 的出现只有几年时间。但它已经出现在所有现代浏览器中,不管我们是否意识到这一点。长期以来被认为是计算领域圣杯的特征——小尺寸、可移植性、安全性和性能,都是我们从 WebAssembly 虚拟机中得到的东西。


关于 GearFans

Gear 是波卡生态的计算组件,GearFans 是 Gear 爱好者社区。

  • 官网:https://gear-tech.io/
  • Twitter:https://twitter.com/gear_techs
  • GitHub:https://github.com/gear-tech
  • Discord:https://discord.com/invite/7BQznC9uD9
  • Medium:https://medium.com/@gear_techs
  • Telegram 群:https://t.me/gear_tech
  • Telegram 中文群:https://t.me/Gear_CN
  • Telegram 中文开发群:https://t.me/gear_dev_cn

分类:

工具介绍

标签:

开源软件

作者介绍

GearFans
V1

Gear 是波卡生态的计算组件。