写点什么

WebKit 全面支持 WebAssembly

  • 2017-06-13
  • 本文字数:627 字

    阅读完需:约 2 分钟

Apple Safari 现在全面支持 WebAssembly,包括支持在未来集成 ECMAScript 模块和多线程。

Apple 为 WebKit 增加了对 WebAssembly 的全面支持,让 Safari 浏览器可以运行使用其他编程语言编写的代码。WebKit 目前支持 x86、x64 和 ARM 64 位平台上的 WebAssembly。

在浏览器里,WebAssembly 可以被作为一个 JavaScript 对象进行访问,所以 WebKit 可以重用已有的 JavaScript 功能来支持 WebAssembly。例如,WebAssembly.Instance API 是通过浏览器支持的 ECMAScript 模块来实现的,并为支持未来的特性做好准备。另外,WebKit 对 WebAssembly 的支持是线程安全的,所以可以在未来加入多线程支持,Chrome 的发展线路图中就包括了对多线程的支持。

代码被编译成WebAssembly 时,已经进行了各种性能上的优化。WebKit 增加了额外的两层优化,分别是Build Bytecode Quickly(BBQ)和Optimized Machine-code Generator(OMG),它们都是基于 B3 JIT ,WebKit 用它调优 JavaScript。据 Apple 工程师透露,BBQ 的编译速度比OMG 快4 倍,但生成代码的运行速度只是OMG 的一半。BBQ 用于加快代码的运行速度,OMG 用于预热代码,对在执行速度方面有很高要求的部分代码进行深度优化。

WebAssembly 包含在 Safari 技术预览版 32 里。Chrome 和 Firefox 在 3 月份已经提供了对 WebAssembly 的全面支持,而 Microsoft Edge 对 WebAssembly 的全平台支持处于预览模式,包括桌面版、移动版、Xbox 和混合现实

查看英文原文: WebKit Now Has Full Support for WebAssembly

2017-06-13 19:002865
用户头像

发布了 322 篇内容, 共 159.6 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

一个程序员日常工作中对于Github的一些另类用法

汪子熙

JavaScript GitHub SAP 11月日更

C++ 动态新闻推送 第34期

很水

【Promise 源码学习】第五篇 - 实现 Promise 对异步操作的支持

Brave

源码 Promise 11月日更

数据库自增ID用完了会怎样

喵叔

11月日更

【高并发】不得不说的线程池与ThreadPoolExecutor类浅析

冰河

Java 并发编程 多线程 高并发 异步编程

JDK还是Google,正则表达式引擎孰优孰劣?

后台技术汇

正则表达式 11月日更

架构实战营模块5课后作业

胡颖

架构实战营

【Flutter 专题】10 图解底部状态栏小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

博文推荐|传智教育 x Pulsar:互联网教育的未来

Apache Pulsar

架构 云原生 消息中间件 Apache Pulsar 消息系统 互联网教育

Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)

不脱发的程序猿

Python qt GUI设计 窗口布局管理方法

Redis计算UV的4种方法

大数据技术指南

11月日更

2021年最新获取url参数的方法,用正则就落后啦

CRMEB

12 K8S之应用容器及Pod资源

穿过生命散发芬芳

k8s 11月日更

C++ 动态新闻推送 第33期

很水

Vue进阶(幺玖捌):js 判断 document.getElementByid(““) 获得的对象是否存在

No Silver Bullet

Vue 11月日更

shell原样输出字符串

WindFlying

C++ 动态新闻推送 第37期

很水

c++

无AI的五子棋Vue项目

空城机

JavaScript typescript 大前端 11月日更

浏览器存储之 localStorage 和 cookie

devpoint

Cookie LocalStorage sessionStorage 11月日更

Go语言,反射机制,反射三定律!

微客鸟窝

Go 语言 11月日更

Android C++系列:JNI引用管理

轻口味

c++ android 11月日更

孔夫子旧书网数据采集,举一反三学爬虫,Python爬虫120例第21例

梦想橡皮擦

11月日更

Go语言,面试官问我go逃逸场景有哪些,我???

微客鸟窝

Go 语言 11月日更

模块三-外包学生管理系统架构

小何

「架构实战营」

数据仓库之数据质量建设(深度好文)

五分钟学大数据

11月日更

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」帮你梳理RocketMQ相关的消费问题以及原理分析总结

码界西柚

RocketMQ 消息队列 11月日更 重复消费

C++ 动态新闻推送 第35期

很水

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」帮你梳理RocketMQ或Kafka的选择理由以及二者PK

码界西柚

kafka RocketMQ 消息队列 11月日更

dart系列之:dart类中的构造函数

程序那些事

flutter dart 程序那些事 11月日更

Flutter怎么实现地图导航功能?

坚果

flutter 11月日更

sonar 使用常见问题总结

liuzhen007

11月日更

WebKit全面支持WebAssembly_JavaScript_Abel Avram_InfoQ精选文章