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

简介: 主要收获——WebAssembly(简称:WASM)是一项改变游戏规则的技术。它允许开发者为网络建立可以以接近原生速度运行的应用程序。它将高度优化的代码与非常小的二进制文件结合起来,使得大型应用程序能够通过网络快速平稳地运行。

虚拟机.jpeg

主要收获——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 虚拟机中得到的东西。

目录
相关文章
|
9月前
|
存储 安全 编译器
|
4月前
|
存储 Dart Java
Dart 虚拟机运行原理
【10月更文挑战第20天】Dart 虚拟机通过一系列复杂的机制和操作,确保 Dart 代码能够准确、高效地执行。它为 Dart 语言的广泛应用提供了坚实的基础和可靠的运行环境
74 6
|
9月前
|
监控 虚拟化
操作系统(4)---虚拟机
操作系统(4)---虚拟机
131 1
|
7月前
|
边缘计算 人工智能 测试技术
什么是虚拟机技术?
拟机技术作为现代计算环境中的重要组成部分,极大地丰富了我们对资源管理和系统部署的理解与实践。本文将深入探讨虚拟机的定义、工作原理、应用场景、优势、主要技术以及未来发展趋势,帮助读者全方位地理解虚拟机这一强大技术。
242 7
|
测试技术 虚拟化 Windows
虚拟机的运行架构
虚拟机作为应用软件安装在操作系统上 可以在此应用软件上安装多个操作系统 直接安装在硬件上的系统为宿主
155 0
虚拟机的运行架构
虚拟机字节码指令表
虚拟机字节码指令表
|
Linux KVM 虚拟化
|
Java C++ 索引
深入理解虚拟机之虚拟机字节码执行引擎
执行引擎是java虚拟机最核心的组成部件之一。虚拟机的执行引擎由自己实现,所以可以自行定制指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。
8859 0
|
存储 安全 Java
深入理解虚拟机之虚拟机类加载机制
**本节常见面试题(推荐带着问题阅读,问题答案在文中都有提到):** 简单说说类加载过程,里面执行了哪些操作? 对类加载器有了解吗? 什么是双亲委派模型? 双亲委派模型的工作过程以及使用它的好处。
2497 0
虚拟机简介
什么是虚拟机? 我的GitHub地址:https://github.com/heizemingjun 我的博客园地址:http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址:http://blog.
878 0