除了HTML、CSS与JS,现在WASM也是标准Web语言

大家应该知道,万维网联盟 W3C 认证的 Web 语言有 HTML、CSS 与 JavaScript,而近日联盟正式宣布 WebAssembly 核心规范(WebAssembly Core Specification)成为官方 Web 标准,这意味着 WebAssembly 成为了第 4 种 Web 语言。


WebAssembly 也叫 WASM,它是为基于栈的虚拟机设计的二进制指令格式,WASM 作为可移植目标,用于编译高级语言(如 C/C++/Rust),从而可以在 Web 上部署高性能客户端和服务器应用,同时它也可以在许多其它环境中使用。

WebAssembly 描述了一种内存安全的沙箱执行环境,该环境甚至可以在现有 JavaScript 虚拟机内部实现。当嵌入到 Web 中时,WebAssembly 将强制执行浏览器的同源和权限安全策略。

WASM 有多种实现,包括浏览器和独立系统,它可以用于视频和音频编解码器、图形和 3D、多媒体和游戏、密码计算或便携式语言实现等应用。

目前 1.0 版本的 Wasm 已经支持 Chrome、Firefox、Safari 与 Edge 浏览器。

对于 Web 来说,因为其虚拟指令集设计,WebAssembly 可让加载的页面以本地编译代码运行,从而可以提高 Web 性能。

换句话说,WebAssembly 可以实现接近本地的性能,并且优化加载时间,同时最重要的是,它可以作为现有代码库的编译目标。

尽管本地类型数量很少,但相对于 JavaScript 而言,性能的提高大部分归功于其对一致类型的使用。WebAssembly 对编译语言进行了数十年的优化,其字节代码针对紧凑性和流传输进行了优化。在下载其它代码时,网页便可以开始执行。网络和 API 访问通过附带的 JavaScript 库进行,安全模型则与 JavaScript 相同。

W3C 同时公布了 WASM 接下来的开发重点,新特性包括:

Threading,线程

Threading 提供了共享内存多线程和原子内存访问的优势。

Fixed-width SIMD,固定宽度 SIMD

并行执行循环的向量操作。

Reference types 引用类型

允许 WebAssembly 代码直接引用宿主对象。

Tail calls,尾调用

直接调用而不使用额外的堆栈空间。

ECMAScript module integration,ECMAScript 模块集成

通过将 WebAssembly 可执行文件加载为 ES6 模块来与 JavaScript 进行交互。

此外还有一些一直在跟进的特性,包括垃圾回收、调试接口与 WebAssembly 系统接口(WASI)等。

值得一提的是,上个月 Mozilla、Fastly、Intel 与 Red Hat 宣布成立联合组织 Bytecode Alliance(字节码联盟),该联盟旨在通过协作实施标准和提出新标准,以完善 WebAssembly 在浏览器之外的生态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDD实战与进阶 - 值对象

概述作为领域驱动设计战术模式中最为核心的一个部分-值对象。一直是被大多数愿意尝试或者正在使用DDD的开发者提及最多的概念之一。但是在学习过程中,大家会因为受到传统开发模式的影响,往往很难去运用值对象这一概念,以及在对值对象进行持久…

C# Lazy Loading

前言按需加载对象延迟加载实际是推迟进行创建对象,直到对其调用后才进行创建初始化,延迟(懒加载)的好处是提高系统性能,避免不必要的计算以及不必要的资源浪费。常规有这些情况:对象创建成本高且程序可能不…

将 WinForms 应用从 .NET Core 3.0 升级到 3.1

点击上方蓝字关注“汪宇杰博客”导语我作为社区里的“拖控件之王”,拖控件贼心不死,有时候会维护一些老项目,其中包括一个2004年的WinForms 软件。9月份的时候我曾经将它迁移到了 .NET Core 3.0,因为代码实现完全没动,…

戴明博士:管理的十四项原则

爱德华兹戴明博士(Dr. W. Edwards Deming)于1982年首版发行的《走出危机》(Out of The Crisis)一书中,提出了组织管理的14条基本原则。书中戴明博士认为:当时的美国企业多致力于追求短期利润,缺乏不断推出新产品及完善…

在Windows系统中构建还原ASP.NET Core 源码

大家好,这几天试着从Github上拉取AspNetCore的源码,尝试着通过Visual Studio 打开,但是并不尽人意。我们需要去构建我们拉去的源代码,这样才可以通过VisualStudio可还原的项目。毕竟AspNetCore是一个巨型的项目集。先决条件在Wind…

蓝桥杯 平面切分(欧拉定理)

问题描述 平面上有 N条直线,其中第 i条直线是 y Ai*x B。 请计算这些直线将平面分成了几个部分。 输入格式 第一行包含一个整数N。 以下N行,每行包含两个整数 Ai, Bi。 输出格式 一个整数代表答案。 样例输入 3 1 1 2 2 3 3样例输出 6基本思路 …

用HttpReports快速搭建API分析平台

HttpReports简单介绍HttpReports 是 .Net Core下的一个Web组件,适用于 WebAPI 项目和 API 网关项目,通过中间件的形式集成到您的项目中, 通过HttpReports,可以让开发人员快速的搭建出一个 API 性能分析的基础报表网站。主要包含 HttpReports …

PAT(乙级) 1001 害死人不偿命的(3n+1)猜想 C++

卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n1。卡拉兹在 1950 年的世界数学家大会上公布了…

他,TypeScript GitHub Star 上海第一,全国第四!GitHub 总标星超两万!

前两天和老同学羡辙(Apache Echarts 核心开发、百度最美工程师)聊天。她分享了一个 GitHub 排名的网站给我。http://git-awards.com/users?typecity&languagetypescript&cityShanghai我看了下 TypeScript star 数量的排名。哇噻!厉害…

PAT(乙级) 1002 写出这个数 (20point(s)) Python

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 AC代码 i input() count 0 for j in i:count count int(j) d {"0":"ling","1":"yi","2":"er","3"…

[原]排错实战——拯救加载调试符号失败的IDA

本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表。如果您已经看过,请忽略。望见谅。缘起 最近想借助IDA逆向一个函数。在windows下,调试器(比如vs, windbg)可以通过调试符号(PDB&#…

数据结构 旅游规划(Dijkstra+Dfs)

题目: 有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路…

如何运用DDD - 实体

概述本文将介绍领域驱动设计(DDD)战术模式中另一个常见且非常重要的概念 - 实体。相对战术模式中其他的一些概念(例如 值对象、领域服务等)来说,实体应该比较容易让人理解和运用。但是我们如何去发现所在领域中的实体呢…

数据结构 最大堆和最小堆

前言: 关于最大堆和最小堆的题目,我做过了很多次,但是好像没有一个是完全独立AC的。2021春季PAT考试的前一天,天梯赛校内赛还专门考了最小堆,我复习了一下,结果第二天PAT考了最大堆,又是没做出来…

Natasha v2.5.4 版与运行时实战

文章转载授权级别:BNatasha 是一个十分便捷的动态构建库,支持.NET Standard2.0 / Core3.0 ; 比起繁杂的 IL 指令和 Expression 的众多 API , Natasha 的构建方式更加友好简洁, 基于 Natasha 可以让动态工作变得傻瓜,简单&#xf…

数据结构 堆中的路径(最小堆)

题目: 将一系列给定数字插入一个初始为空的小顶堆H[ ]。随后对任意给定的下标i,打印从H[i]到根结点的路径。 输入格式: 每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 100…

.Net Core3.1下使用Swagger搭建web api项目

前言:微软于前天发布.net core 3.1正式版,并将长期支持3.1。所以我听到这个消息后就急忙下载.net core 3.1的SDK和Runtime,应该是公司最先用3.1的攻城狮了????。OK!废话少说,今天的目的是基于.net core 3.1建一个web api的项目先下载.net…

一个值得学习的WPF开源项目

项目介绍此项目应用了Prism MVVM框架,项目展示数据来源于其他服务程序,使用的WebAPI通信,如果要正常运行此程序,需要您自己做一个WebAPI程序,由API接口提供数据驱动,其实直接查看代码最直接,有需…

程序员修神之路--打通Docker镜像发布容器运行流程

菜菜哥,我看了一下docker相关的内容,但是还是有点迷糊还有哪不明白呢?如果我想用docker实现所谓的云原生,我的项目该怎么发布呢?这还是要详细介绍一下docker了Docker 是一个开源的应用容器引擎,基于 Go 语言…

PTA 三足鼎立 (lower_bound()+upper_bound())

当三个国家中的任何两国实力之和都大于第三国的时候,这三个国家互相结盟就呈“三足鼎立”之势,这种状态是最稳定的。 现已知本国的实力值,又给出 n 个其他国家的实力值。我们需要从这 n 个国家中找 2 个结盟,以成三足鼎立。有多少…