上个月我们分享了 在博客上关于 Mozilla,Fastly,Intel和Red Hat合作开发的新闻 造就的技术 WebAssembly (如果您想了解更多有关该新闻的信息,可以查阅该新闻。 此链接) 现在 那条消息过了几周 W3C联盟已宣布该技术 WebAssembly 它已成为推荐的标准。
对于那些不熟悉WebAssembly的人 他们应该知道 这提供了一个中间件 普遍 与浏览器无关的低级运行应用程序 已编译 来自各种编程语言。 WebAssembly被定位为用于构建高性能Web应用程序的最有前途和可移植的跨浏览器技术。
Web程序集e可用于解决需要高性能的任务例如,视频编码,声音处理,3D图形和操作,游戏开发,密码运算,数学计算以及编程语言的可移植实现的创建。
WebAssembly 看起来很像Asm.js,但不同之处在于它是未绑定到JavaScript的二进制格式。 WebAssembly不需要使用垃圾收集器,因为使用了显式的内存管理。
特色 WAS的应用程序的执行模型我正在沙盒环境中启动 与主系统隔离开来,并使用基于容量管理的安全机制来对每个资源(文件,目录,套接字,系统调用等)进行操作
通过为WebAssembly启用JIT,您可以达到接近本机代码的性能水平。 WebAssembly的主要任务之一是提供可移植性,行为的可预测性以及在不同平台上执行代码的身份。
近日, WebAssembly也正在作为通用平台发展 在任何基础架构,操作系统和设备上安全运行代码,而不仅限于浏览器。
W3C具有标准化的三个规范 与WebAssembly相关:
- WebAssembly核心-定义为低级虚拟机,它紧密模拟其运行的许多微处理器的功能。 通过编译或即时解释,WebAssembly引擎几乎可以以本机平台的编译代码速度运行。
资源 .wasm 类似于文件 .class的 从某种意义上说,Java包含静态数据和对该静态数据进行操作的代码段。 与Java不同,WebAssembly通常是作为其他编程语言(例如C / C ++和Rust)的编译目标而产生的。 - WebAssembly Web API: 定义基于Promise机制的编程接口,用于请求和执行“ .wasm”资源。 WebAssembly资源格式经过优化,可以在不等待文件完全加载的情况下开始执行,从而提高了Web应用程序的响应速度。
- WebAssembly JavaScript界面: 提供了与JavaScript集成的API。 允许您获取值并将参数传递给WebAssembly函数。 WebAssembly的执行与JavaScript安全模型相对应,并且与主机的所有交互都以与执行JavaScript代码类似的方式执行。
将来计划进行准备 WebAssembly功能的规范,例如:
- 具有共享内存和原子内存访问的多线程。
- 基于SIMD的向量运算,允许并行执行循环。
- 引用类型,用于直接引用WebAssembly代码中的对象。
- 能够在不花费额外空间的情况下调用函数。
- 与ECMAScript模块集成:能够从JavaScript加载WebAssembly代码作为符合ECMAScript 6规范的模块。
- 使用垃圾收集器的方式。
- 调试接口。
- WASI(Web组件系统接口):用于与操作系统直接交互的API(用于文件,套接字等的POSIX API)。
如果您想了解更多信息,可以查阅原始说明。 在下面的链接中。
成为第一个发表评论