React Native 升级版本至0.66的一些经验记录(Hermes与Realm)
升级过程的话,官方有一个WEB端的工具可以提示你修改哪些内容。但是我是从一个较老的0.59.8(大约是19年5月发布的版本)的项目开始升级。并且项目中牵扯的三方库也不少,在之前的一次尝试按照官方指引升级0.65的过程中失败,一路解报错看不到头。因为时间问题那一次升级也暂时搁置了。随时react native 0.66的发布hermes 引擎升级到了0.9.0版本,这还是非常令人激动的。我最终的升级
升级过程的话,官方有一个WEB端的工具可以提示你修改哪些内容。但是我是从一个较老的0.59.8(大约是19年5月发布的版本)的项目开始升级。并且项目中牵扯的三方库也不少,在之前的一次尝试按照官方指引升级0.65的过程中失败,一路解报错看不到头。因为时间问题那一次升级也暂时搁置了。
随时react native 0.66的发布hermes 引擎升级到了0.9.0版本,这还是非常令人激动的。
我最终的升级方案是重新建了0.66的工程 ,再将原来的业务代码全部迁移进去耗时还是比较多的。
注意开启hermes引擎,需要在build.gradle(:app)文件中开启,注意修改后clean+rebuild
project.ext.react = [
enableHermes: true, // clean and rebuild if changing
]
这里主要记录遇到一个realm库的问题,在开启hermes后,使用realm正式版本编译会提示
去到realm-js的github查看问题发现这个问题从19年0.60.2开始hermes引擎就存在了,一直还未出稳定版本,只有alpha版本。当然还有替代方案,可以换成watermelonDB。
我测试了 v10.20.0-alpha.1的版本,
(https://github.com/realm/realm-js/releases/tag/v10.20.0-alpha.1)
并开启hermes后运行程序,帧率会比之前理想(使用Perf Monitor对比观察)。
Hermes提升的线程性能目前还在测试,测试了打包后的android apk包体积,效果喜人。
APK包体积是原先的65%。
2021-12-3更新:
测试了一个5000W次的FOR循环,实际结果发现 开启HERMES引擎后耗时居然远大于不开启时。
开启后耗时3542ms(截图仅截图一次,实际测了5,6次 均在3000ms以上)
未开启耗时300ms左右
更多推荐
所有评论(0)