WEB开发将不再重度依赖JS

Mozilla、谷歌、微软、苹果 4大浏览器一致通过了一个标准:WebAssembly WebAssembly 允许使用更多的语言来开发web应用,并且有接近原生应用的性能,使web开发不再重度依赖JS,同时性能极大的超越了JS

WebAssembly 是什么?

WebAssembly 是一个面向Web的 通用的 二进制和文本格式(二进制格式是用来运行的,文本格式是给人查看和调试的) 为各种语言定义一种统一的二进制编译格式,可在Web环境中执行,实现接近原生的速度,并可调用常见的硬件功能 意味着可以使用自己熟悉的语言来开发web应用了,并且性能极高

WebAssembly 是怎么来的?

WebAssembly 的出现,是源于对web性能的不断追求 Javascript 非常流行,但有个硬伤,就是性能不好 js是1995年其作者用10天赶制出来的,是一个解释性语言,当时的目标很简单,就是在页面上做点动画和交互操作,没有性能问题 10年后,js应用越来越广,性能问题突出,谷歌推出了V8引擎,使js的速度得到20倍的提升,其中的一个重要原因是V8中使用了JIT即时编译技术 JIT 基于运行期分析编译,会对代码进行扫描和编译优化,优化的重点是变量的类型,生成了类型变量,加上一些其他优化,使运行速度大幅提升 但JIT也有很多局限,例如 数组、对象属性、闭包变量 等,都无法优化 后来firefox提出了新的思路,开发了 asm.js asm.js 是js的一套子集,可以理解为是一套更严格、更便于优化的js,支持把c/c++编译为js C/C++ –> LLVM位码 –> Emscripten –> asm.js –> 浏览器 速度已经达到原生C/C++的一半,并且还有很大的提升空间 同时,谷歌也有自己的项目 PNaCl,可以在浏览器的沙箱中运行C/C++,性能比asm.js还要好 苹果也有类似的想法,在开发FLTJIT 只有微软没动作 谷歌和苹果在开发各自项目的同时,都遇到了一些棘手的问题,发现还是支持asm.js更容易一些,而且也更统一 所以他们4个就协商了一下,在asm.js思路的基础上规划出了WebAssembly

WebAssembly 的特点

(1)快 二进制格式使代码体积减小,加载更快,并且运行更快 (2)安全 WebAssembly描述了一个内存安全的沙箱环境,可以运行在现有的JS虚拟机环境,运行在浏览器中时,会严格执行相同的安全策略 (3)便于调试 支持良好的文本格式,用来调试、优化、学习教学等

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-03-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏圣杰的专栏

eShopOnWeb 知多少

eShopOnWeb是基于ASP.NET Core构建,官方创建这样一个示例项目的目的,我想无非以下几点:

1391
来自专栏牛客网

金山wps服务端二面面经

前言:阿婆主很久很久没写过面经了,之所以写这篇面经是真的感觉wps相关的面经太少啦,既然有机会面试那就写一篇吧 直接上啦---> 协程和线程,比如协程底层的实现...

5496
来自专栏Golang语言社区

Node.js真的无所不能?那些不适用的应用领域分析

Node.js是一个服务器端JavaScript解释器,底层采用的还是libevent;它的目标是帮助程序员构建高度可伸缩的应用程序,目前对Node.js 的采...

3196
来自专栏存储

集群NAS和对象存储的区别

这个话题乍一看可能有些奇怪,因为一个是集群NAS存储,一个是对象存储,没什么相同的地方,为啥还要比较? 而实际上,在考察两种技术的实际应用场景时,我们会发现,两...

38110
来自专栏微信公众号:Java团长

如何阅读Java源码?

假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,...

4942
来自专栏小文博客

王者荣耀最新开启高帧率模式方式

1444
来自专栏安恒信息

Jsprime——一款JavaScript静态安全分析工具

如今,越来越多开发人开始将JavaScript作为其首选语言方案。理由很简单,JavaScript如今正越来越多地被视为应用程序的主流开发语言——无论是在Web...

2967
来自专栏小文博客

看大片|鬼片必备音效软件+配置(让你在家享受到电影院的感觉)

1434
来自专栏企鹅号快讯

学习Python语言,这些酷毙的工具你知道几个?

工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来...

2368
来自专栏码洞

摸着石头过河:知乎核心业务 Go 语言改造实践

随着知乎用户的迅速增长和业务复杂度的持续增加,核心业务的流量在过去一年内增长了好几倍,对应的服务端的压力也越来越大。随着业务发展,我们发现 Python 作为动...

1602

扫码关注云+社区