前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WEB开发将不再重度依赖JS

WEB开发将不再重度依赖JS

作者头像
dys
发布2018-04-03 17:00:10
1.2K0
发布2018-04-03 17:00:10
举报
文章被收录于专栏:性能与架构

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)便于调试 支持良好的文本格式,用来调试、优化、学习教学等

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档