58RN 容器启动优化:从秒开到毫开的实践
出处:
mp.weixin.qq.com
2021 年,我的同事宏伟在 GMTC 分享了《58RN 页面秒开方案与实践》,这套方案主要解决了三个问题:资源预加载 + 静默更新:页面优先使用本地缓存资源,更新在后台静默完成。metro 拆包 + 框架预执行:App 启动时优先执行 RN 框架包。Native 并行请求业务数据:框架初始化与业务数据请求并行执行。但问题来了:“秒开”真的已经足够了吗?数据表明, 首屏时间每降低 1 秒,用户流失率大约降低 6.9%。 当前方案实施后,在低端机(Pixel 3a)上实测RN页面的冷启动仍需 1.78s、热启动需 1.1s,白屏依然明显。因此,我们开始针对 RN 容器启动链路 进行优化。最终通过 容器预加载 + 容器复用,把冷启动压到 0.8s(↑55%),热启动到 0.33s(↑70%) 。本文将分享整个优化过程与落地经验。