WebAssembly虚拟机是什么

WebAssembly(简称:WASM)是一项改变游戏规则的技术。它允许开发者为网络创建可以以贴近原生速率运转的应用程序。这将高度改善的代码与特别小的二进制文件结合起来,促使大型应用程序可以通过网络迅速平稳地运作。

一、什么是WASM虚拟机

WebAssembly(简称:WASM)是一项改变游戏规则的技术。它允许开发者为网络创建可以以贴近原生速率运转的应用程序。这将高度改善的代码与特别小的二进制文件结合起来,促使大型应用程序可以通过网络迅速平稳地运作。速度快,效率高,加上客户无需下载或安装就可以开始互动的概率,这也是为什么WebAssembly被称作“web的将来”。

想象一下那样一个世界:你可以使用任何编程语言搭建软件,并在Web浏览器中直接向终端用户提供此软件,无需任何安装,而且特性匹敌原生。随着WebAssembly(简称WASM)的发布,这个曾经看上去难以想象的开发者的乌托邦近期变成了现实。

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

比如,这意味着,开发者可以将他们的原生应用程序带到网络上,并在网页浏览器中实现应用程序的所有性能全部作用——通常在Windows或Mac上运作当地应用程序时才有的特性。事实上,开发者也无需直接撰写WASM代码。相反,他将应用WASM做为用其他语言编写的程序的编译目标。比如,开发者可以用Unity和C#搭建一个游戏,并把它编译到WASM中,之后直接在浏览器工具中公布。

这是革命性的举措,由于客户如今能够轻松进到网页与应用程序互动,而无需下载和安装过程——这有时会引发安全隐患。然而,WASM的惊人之处就在于,你可以有着匹敌原生性能,并且可以跨所有平台使用浏览器,这是一项巨大的工程优点。

二、WebAssemzbly的工作原理是怎么样的

由W3C研发的WebAssembly,用其创始人的话来说是一个“编译的目标”。开发者无须直接撰写WebAssembly。他们可选用自己熟悉的语言编写代码,随后编译成WebAssembly类别的字节码。字节码一般运行在客户端的Web浏览器中,且被译成可被高速实施的原生机器代码。

WebAssembly代码旨在完成比JavaScript更快的载入、分析与执行。当应用WebAssembly时,Web浏览器依然存在下载Wasm模块,及其给予设定的开销。虽然对于较大的Wasm项目来讲,该类模块会毕竟在运行中产生了几兆字节,而发生延迟。但是在其他同等条件的中小型工程中,WebAssembly会运作得更快一些。

同时,WebAssembly也提供了一个沙盒实行模型,该模型与JavaScript的目前安全模型十分相似。换句话说,Wasm应用程序没法直接访问到沙盒以外的任何内容,甚至他们正在运行的网页上的DOM。因此,假如应用程序需要和系统中的其他部分进行互动,就必须采用类似WebAssembly系统接口(WASI,https://wasi.dev/)的各类ABI(应用程序二进制接口)。WASI为程序带来了常被用来文档、网络、系统时钟、以及其它服务程序的可控式浏览。

目前,尽管在Web浏览器中运作WebAssembly,则是最常见的一种使用场景,可是WebAssembly远不单单是基于Web的解决方案。比如:Wasmer项目就能在服务端运作WebAssembly应用程序。这和Node.js运行中(runtime)在浏览器以外运作JavaScript的形式十分类似。

延伸阅读

code/key定义

code 代表着用户按下的物理键,这个值不会因为用户所使用的键盘布局或者是否按下了 Modifier 影响。大部分情况下,key 代表着用户按下某个键后生成的字符,这个字符会受用户的键盘布局、语言、是否按下了 Modifer以及系统级别的键盘映射等等。除此之外还有一些附加条件。

文章标题:WebAssembly虚拟机是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53808

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年6月3日
下一篇 2023年6月3日

相关推荐

  • 在电脑上用什么编程好

    选择编程语言和工具时,关键因素有3个:项目需求、生态系统支持及学习曲线。项目需求是决定因素之一,因为不同的项目类型可能更适合特定语言或工具。例如,开发Web应用通常会选择JavaScript及其框架,因为这些技术专为网络环境设计。JavaScript持续开发的生态系统、广泛的社区支持、和丰富的库使得…

    2024年4月27日
    300
  • 教你学编程看什么书好

    学习编程涉及多种技能和概念的掌握,选择合适的书籍是关键之一。对于初学者而言,一个好的起点是理解编程的基础、学习一门语言的细节,以及了解算法与数据结构。其中,编程基础是至关重要的,因为它为学习具体的编程语言打下坚实的基础。无论是从事前端开发、后端开发还是数据科学领域,基础知识都是通行的钥匙。通过阅读涵…

    2024年4月27日
    500
  • 项目进度如何进行管理和控制

    项目进度的管理和控制是确保项目按时完成的关键。设立清晰的时间表、制定详尽的工作分解结构(WBS)、应用适当的进度跟踪方法、利用有效的沟通机制、进行风险管理,这些步骤都是项目进度管理和控制不可或缺的。 制定详尽的工作分解结构是为了将项目分解成细小、易于管理的任务,这有助于明确各个部分的完成时间和责任人…

    2024年4月11日
    5000
  • html与html5的区别

    html与html5的区别是:1、标准不同;2、功能不同;3、兼容性不同;4、结构不同;5、交互性不同。整体对比来看,html5相比html更具有丰富的功能和更好的用户体验。通常html5是html的升级版本,扩展了更多的功能和特性。 一、标准不同 html是超文本标记语言的标准,基于SGML,主要…

    2023年5月24日
    67900
  • C++的class与struct到底有什么不同

    C++的class与struct的不同点:1、类型不同;2、存储不同;3、成员属性不同;4、继承不同;5、能否使用模板。类型不同是指,struct是实值类型(Value Types),而class则是引用类型(Reference Types)。 一、C++的class与struct的不同点 1、类型…

    2023年4月15日
    2.1K00
  • GPT-4与其他AI模型相比有何优势

    本文讨论了GPT-4与其他人工智能模型相比的优势所在,分析其在包括1、模型结构与算法、2、多模态能力、3、语言理解和生成、4、自学习和适应性、5、应用广泛性五个核心指标上的显著特点。GPT-4不仅在模型架构上展示了更高级的深度学习技术,其多模态能力也给予了它处理图像和文本的独特优势。在语言处理方面,…

    2023年11月24日
    95000
  • 脚本用什么编程

    脚本用什么编程 脚本常使用Python、JavaScript、Bash、Perl,以及Ruby编程。Python 特别受欢迎,因为它具有简单易读的语法、强大的标准库以及广泛的社区支持。Python 在自动化任务、数据分析以及网络编程方面非常有效。 一、PYTHON的应用与优势 Python被广泛应用…

    2024年4月26日
    900
  • 什么是C/C++的标准库

    C/C++标准库是一套由C和C++语言标准化定义的函数、宏和类型定义集合。这些库提供了操作系统抽象、数据结构、算法和其它有用的编程构件。C/C++标准库旨在提供一组高效、可移植和安全的接口,用于处理从基础数学运算到高级数据结构和算法的各种编程任务。本文深入探讨了标准库的组成、历史和应用,以及其如何影…

    2023年7月13日
    74100
  • 极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

    近日,艾媒咨询发布了《2021 年中国泛娱乐行业体验共享专题报告》,首次提出「体验共享」将成为泛娱乐行业日后发展的重要方向。针对该趋势,网易云信推出「体验共享」技术专题,从 QoS 策略、WE-CAN 全球智能路由网络、视频、音频等维度解读一起听、一起看、一起唱、一起玩等场景背后的技术支持。 作者:…

    2022年3月16日
    78300
  • 定做oa系统

    在探讨定制OA系统这一议题时,浅析途径包括:1、明确组织需求,2、选择合适的开发团队,3、制定实施计划,4、确保系统安全性,5、进行系统测试,6、实施用户培训等环节。专门针对明确组织需求,详尽描述各类组织在第一步确定自身特定需求时,必须进行内部流程梳理,明白哪些流程能够被自动化,哪些数据需要得到管理…

    2024年1月12日
    19200

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部