前端程序员应该了解的V8知识
对于每个前端程序员来讲都应该有一个终极理想,那就是搞懂 JavaScript Engine是如何工作的。纵观JavaScript 历史,我们可以发现JavaScript性能经过了两次飞跃:第 1 次飞跃是 2008 年V8 发布,第 2 次则将是 2017 年万众瞩目的 WebAssembly(基于Mozilla的实验性项目asm.js)。不过 WebAssembly 到底能不能掀起前端的波澜还是未知数,但是 V8 对JavaScript乃至整个前端开发领域的贡献大家都有目共睹。 我们先来看看JavaScript Engine前世今生。最早的JavaScript引擎当然是老本家Netscape的Navigator上的SpiderMonkey(生命力超强,现在已经传承到Mozilla的Firefox了),以及后来Mozilla用Java写的经典的开源引擎Rihno(12年时候Oracle根据JSR292,写了OpenJDK官方开源的Nashorn);Apple家Safari的Nitro;微软家的Chakra(Edge和IE都是用它,但Edge的已经完整支持ES规范了不再闭门造车了)等等有很多很多。但目前最红火,当属诞生年头较晚(2008年随Chrome第一版出来)的Google家的开源引擎V8。V8诞生和随后的快速迭代发展,终于挑起了JavaScript Engine的军备竞赛,极大的促进了JavaScript的发展,使得JavaScript重新焕发第二春。
V8脱胎自Google Chrome的Chromium项目,随着09年被大神Ryan Dahl用来搞了Node.js外(Node.js使JavaScript进化为一门全栈语言,这块我们以后会继续请Node大牛狼叔 @i5ting 来分享),也被Couchbase, MongoDB等开源项目使用。而且V8改变了编译处理JavaScript的传统方式(先解释为字节码或整个程序编译为机器码,然后从文件系统上执行),她直接将JavaScript编译为本地机器码(兼容几乎所有的硬件架构)然后执行,利用启发式算法,加持很多编译和运行时优化技术,以及自如的内存管理和垃圾回收,成为了新一代JavaScript Engine的楷模。最新的TurboFan引擎(今年2月份发布的V8 5.7)性能提升之外也大大减少内存占用情况,也开启了对WebAssembly的支持。见下图关于Async性能对比(分数越高越好):
所以对于前端或JavaScript全栈工程师,了解并掌握V8引擎对于自己的工作会有莫大的帮助,可以更深入更全面的去看待JavaScript,甚至跳出JavaScript来。因此我们特别邀请了对JavaScript钻研多年的王松(名字不熟悉,那这个ID总该知道了吧---> @justjavac)来给我们讲讲V8。justjavac是前端工程师, 8 年前端开发经验,进行过多次前端技术分享。曾组织翻译《 JavaScript Quirks 》,正在出版《代码之谜》。 JSON API 中文规范维护者, Flaurm 中文社区创始人。平时混迹于 GitHub ,参与众多开源项目。
这次我们请justjavac来,不是和大家一起分析V8的C++源代码(估计得讲哭90%的人),而是以前端工程师的视角来说说V8引擎对于前端来说的应知应会。不过如果你对V8源码感兴趣,我们极力推荐王松从去年底开始连载的“V8引擎专栏”,记录了他学习 V8 源码的点点滴滴,微信公众号:justjavac(id是justjavac-blog),内容都很精彩,不容错过!
唠完V8,justjavac老师还会分享一下自己对大前端的理解和想法,并分享自己宝贵的经验,机会难得。最后我们还有一个大家都喜欢的圆桌互动环节,到时候我们邀请justjavac等嘉宾来和大家一起互动讨论V8、前端、工作、学习等话题。
活动内容如下: 14:00 - 15:00 《前端程序员应该了解的V8知识》 - 我为什么要研究V8 - V8 为什么这么快? - 如何编写高性能的 JS 代码 - 可读性 VS 高性能
15:00 - 15:15 茶歇 15:15 - 16:00 《浅析大前端》 16:00 - 17:00 圆桌互动
请提做一些功课:
活动开始时间:2017年3月25日,星期六,下午2:00 活动地点:天津市南开区凌奥创意产业园三期南商业3号楼4门201
报名须知:
请特别注意:为让更多朋友可以参与到活动中来,从本次活动开始,如果您连续三次提交了报名表,但是没有到场,我们将会把您列入黑名单。
|