Facebook 发布全新 JavaScript 引擎:Hermes! | CSDN博文精选


作者 |?Carson_Ho
责编 | 郭芮
出品 | CSDN 博客
目前,用户的流畅体验是用户能长期使用某个移动客户端应用App的重要指标之一,因此,移动客户端应用App的性能问题备受关注。
最近,一个崭新的JavaScript引擎面世:Hermes,它是Facebook在Chain React 2019 大会上发布 & 用于在React Native应用提高性能的,今天,我将进行全面介绍。


简介
Facebook在Chain React 2019 大会上发布的一个崭新JavaScript引擎,已开源 & 用于移动端React Native应用的集成。


作用
2.1 背景
用户的流畅体验是用户能长期使用某个移动客户端应用App的重要指标之一,因此,移动客户端应用App的性能问题备受关注。
针对React Native应用,流畅度等性能问题一直被人诟病。
2.2 问题
Facebook基于多方性能数据分析,发现JavaScript引擎本身就是影响React Native应用启动性能的重要因素。
2.3 解决方案
构建一个全新的JavaScript引擎,针对React Native应用,去提高移动客户端应用App的性能。
特别注意:Hermes主要面向移动端React Native应用的性能优化,对浏览器 & Node.js 等服务端基础架构并不适用。

性能提升表现
对于React Native应用(基于JavaScript引擎)来说,用户感知最明显的性能体验包括:
应用程序可用的时间(TTI);
安装包下载大小(Android APK 大小);
内存利用率。
根据Facebook给出的官方性能优化性能数据如下:

从上述数据可知,Hermes引擎提升性能较为明显:
在应用程序可用的时间上,Hermes能提升一倍的时间效率;
在安装包下载大小下,Hermes能减少50%的大小;
在内存利用率上,Hermes能节省30%的内存使用。

设计原理
为了提升React Native应用的性能表现,Hermes引擎的设计主要是从是两个方面入手:编译方式 & 垃圾回收策略。
4.1 编译方式
a. 字节码预编译

b. 无JIT编译

4.2 垃圾回收策略


使用特点
在实际使用Hermes时,具备3个优点:懒编译、兼容性好 & 调试体验好。具体如下:

特别注意:在实际使用Hermes时,需对build.gradle文件做更改&重新编译。
project.ext.react?=?[
??entryFile:?"index.js",
??enableHermes:?true
]

总结
本文全面讲解了Facebook在Chain React 2019 大会上发布的一个崭新JavaScript引擎:Hermes。
如果想要对 Hermes引擎中的知识进行深入讲解 ,感兴趣的同学可以继续关注作者Carson_Ho的博客开发笔记(https://blog.csdn.net/carson_ho/article/details/96267553)。

?热 文?推 荐?
?Github Trending被中文项目“占领”,国外开发者不开心了!
?计算机密码发明者去世!曾获图灵奖、并启蒙 Unix 诞生!
点击阅读原文,即可查看 CSDN 博客原文。

关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中国经济向世界提供“机遇清单” 7904343
- 2 再次提醒:中国公民近期避免前往日本 7809344
- 3 狂甩45次 无汞体温计才降到36℃ 7712851
- 4 2025这些“经济”持续成长壮大 7617615
- 5 金正恩单膝跪地吊唁俄驻朝大使 7521944
- 6 “九天”无人机成功首飞 7428043
- 7 网警:男子AI生成车展低俗视频被拘 7329109
- 8 “无名”男子医院躺7年半 警方介入 7233269
- 9 北冥有鱼竟然是真的 7138434
- 10 寒潮来袭!多地气温将创下半年来新低 7040278







CSDN
