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日

相关推荐

  • DevOps和自动化合规性的整合

    DevOps practices aim to streamline software delivery by combining development and operations, fostering a culture of collaboration and continuous impr…

    2024年1月18日
    9000
  • 记录软件哪个好

    记录软件好用的有:1、工时记录;2、时间记录软件;3、上班记录;4、印象笔记;5、千本笔记。工时记录是一款热度很高的软件,用户们在软件中可以清楚的知道自己的工资发放时间和数量,而且可以帮助用户们及时的记录自己的工作时间。 一、工时记录 这是一款热度很高的软件,用户们在软件中可以清楚的知道自己的工资发…

    2023年4月20日
    25900
  • 实现DevOps自动化的关键技术有哪些

    在实现DevOps自动化过程中,一系列关键技术共同发挥作用以提升软件开发及运维的流程效率。首要之策是版本控制系统,它确保代码的持续集成和交付。其次是持续集成与持续部署(CI/CD)技术的应用,形成无缝的软件交付流程。测试自动化技术对于质量保证至关重要,它能够确保软件质量并减少手工测试的重复劳动。基础…

    2023年12月13日
    18200
  • Dropbox用什么语言开发的

    Dropbox是用Python 开发的。用到 Python 的地方有:服务器后台、客户端、Dropbox 网页版前段、API 后台、数据分析。在服务器端、桌面版客户端使用的是 Python 的官方实现 CPython。Android 和 iOS 上由于内存限制使用的是原生应用(Java、Obj-C)…

    2023年4月13日
    39300
  • 企业是怎样实施客户体验管理的

    企业是通过以下几点实施客户体验管理:1、客户体验测量;2、做好客户体验必先建立客户体验指标体系;3、优化客户体验的工具;4、客户情感地图;5、消费者洞察是客户体验重要环节。 1、客户体验测量 要做客户体验管理,必先测量客户体验,只有测量出客户体验在每个触点的满意度你才知道如何管理,如何投入资源去优化…

    2022年10月24日
    39600
  • 数据采集的五种方法有哪些

    数据采集是指从不同来源和渠道收集、提取和整理数据的过程,数据采集是科研、商业分析、社会调查等众多领域中的重要步骤。数据采集的五种方法有:1、观察法;2、调查问卷法;3、实验法;4、访谈法;5、文献法;每种方法都有其独特的优势和局限性,适用于不同的场景和需求。 1.观察法: 观察法是直接通过观察现象或…

    2023年5月15日
    4.6K00
  • 什么网址可以知识共享

    以下网址可以知识共享:一、中国知网;二、好知网;三、百度传课;四、粉笔网;五、多贝网。中国知网知识发现网络平台-面向海内外读者提供中国学术文献、外文文献、学位论文、报纸、会议、年鉴、工具书等各类资源统一检索、统一导航、在线阅读和下载服务。 一、中国知网 中国知网知识发现网络平台-面向海内外读者提供中…

    2023年3月19日
    29000
  • 什么是面向接口编程

    在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。 一、什么是面向接口编程 在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种…

    2023年7月28日
    34900
  • DevOps实践对客户满意度的影响

    摘要:DevOps实践通过提升软件交付速度和质量,实现了对客户满意度的积极影响。DevOps的核心在于文化的转变、流程的自动化、持续集成与持续交付(CI/CD)、快速反馈及监控。1、文化的转变 促进团队之间的沟通与合作,提高了交付效率。2、流程的自动化 减少了人工错误,缩短了交付周期。3、持续集成与…

    2023年12月13日
    16800
  • 云服务器和普通服务器的区别是什么

    云服务器和普通服务器的区别在于以下几个方面:1、定义的区别;2、成本的区别;3、使用效率的区别;4、故障率的区别;5、稳定性的区别等。定义的区别主要在于,云服务器是一个提供计算服务的服务器集群;而服务器是一个提供计算服务的硬件设备。 一、定义的区别 云服务器是一种简单高效、安全可靠、处理能力可弹性伸…

    2023年2月21日
    28600

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部