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 虚拟机中得到的东西。

目录
相关文章
|
5月前
|
存储 安全 编译器
|
3月前
|
边缘计算 人工智能 测试技术
什么是虚拟机技术?
拟机技术作为现代计算环境中的重要组成部分,极大地丰富了我们对资源管理和系统部署的理解与实践。本文将深入探讨虚拟机的定义、工作原理、应用场景、优势、主要技术以及未来发展趋势,帮助读者全方位地理解虚拟机这一强大技术。
133 7
|
测试技术 虚拟化 Windows
虚拟机的运行架构
虚拟机作为应用软件安装在操作系统上 可以在此应用软件上安装多个操作系统 直接安装在硬件上的系统为宿主
128 0
虚拟机的运行架构
|
存储 Java 程序员
JVM 虚拟机之编译优化(上)
本文主要是概念篇,总结和摘录了 JVM 对于编译优化中存在的几个核心概念: 热点探测、方法内联、逃逸分析、公共子表达式消除、数组边界消除等。
153 0
JVM 虚拟机之编译优化(上)
|
Java Linux Android开发
【Java 虚拟机原理】Dalvik 虚拟机 ( 简介 | CPU 指令集 | Dalvik 虚拟机内存 )
【Java 虚拟机原理】Dalvik 虚拟机 ( 简介 | CPU 指令集 | Dalvik 虚拟机内存 )
215 0
【Java 虚拟机原理】Dalvik 虚拟机 ( 简介 | CPU 指令集 | Dalvik 虚拟机内存 )
|
分布式计算 Oracle 关系型数据库
硬核!!教你如何通过脚本自动部署虚拟机并安装操作系统
硬核!!教你如何通过脚本自动部署虚拟机并安装操作系统
521 0
硬核!!教你如何通过脚本自动部署虚拟机并安装操作系统
|
监控 安全 Java
JVM 虚拟机之编译优化(下)
JVM 虚拟机之编译优化
121 0
|
分布式计算 安全 Hadoop
虚拟机环境准备|学习笔记
快速学习 虚拟机环境准备
123 0
|
Linux
VirtualBox虚拟机执行效率很高
VirtualBox虚拟机执行效率很高
128 0
|
Linux KVM 虚拟化