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.Z的头像E.Z
上一篇 2023年6月3日
下一篇 2023年6月3日

相关推荐

  • 项目管理培训内容有哪些类型

    项目管理培训内容主要包括:基础知识培训、项目规划与控制培训、风险管理培训、质量管理培训、团队管理与领导力培训等。其中,基础知识培训是培训的起点,它主要涵盖项目管理的定义、项目生命周期、项目管理过程等关键概念,让参与者对项目管理有一个全面的理解。 一、基础知识培训 基础知识培训是项目管理培训的基石,主…

    2024年7月24日
    1000
  • bim项目管理平台有哪些内容

    BIM项目管理平台包含的内容主要有:项目管理模块、模型管理模块、协作与沟通模块、任务管理模块、文件管理模块、质量安全模块等。其中,项目管理模块是最核心的部分,它主要负责对项目整体进度的管理,包括项目计划、项目进度、项目成本、项目风险等方面的管理。该模块通常包含了项目信息管理、项目进度管理、项目成本管…

    2024年7月24日
    500
  • 旅游局管理哪些行业项目

    旅游局是一个专门负责管理和监管旅游活动的政府机构,主要负责的行业项目包括:旅游资源开发、旅游景区管理、旅游市场营销、旅游服务质量监管、旅游政策制定、旅游企业管理、旅游行业统计数据收集与分析、旅游规划与建设、旅游文化推广等。其中,旅游资源开发是旅游局的重要职责之一,它涉及到对旅游资源的勘查、评价、利用…

    2024年7月24日
    400
  • 项目管理的职业证书有哪些

    在项目管理领域,各种职业证书层出不穷,但以下几种证书是最为知名和公认的:PMP(项目管理专业人士)、PRINCE2(项目内控环境)、CAPM(认证项目管理师)、MSP(管理成功的项目)、ACP(敏捷认证专家)和CSM(认证Scrum Master)。各种证书的培训和取得,对从事项目管理工作的人来说,…

    2024年7月24日
    300
  • 项目管理的关键点有哪些

    项目管理的关键点包括:明确目标、制定详细计划、有效沟通、风险管理、资源分配、进度监控、质量控制、变更管理。明确目标是项目管理的基础,确保项目的所有参与者都了解并认同项目的最终目标,这是项目成功的第一步。明确目标不仅要清晰具体,还需可衡量、可实现、有时间限制和相关性。制定详细计划则是根据项目目标,分解…

    2024年7月24日
    300

发表回复

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

400-800-1024

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

分享本页
返回顶部