我正在工作的项目是使用React Native创建iOS应用。
以下是iPhone 5S版本中的冷启动时间
Pre-main time: 0.52 seconds
App did launch to javascript did load time: 2.12 seconds
JS render time: 0.74 seconds
Total time: 3.34 seconds
最慢的部分是等待React库加载JS捆绑包(2.2MB)。加载时间看起来正常吗?如何改善JS捆绑装加载时间?非常感谢。
减少JS捆绑包的大小可以改善应用程序从应用程序启动到JavaScript的时间确实加载。对于一个新的Hello World项目,它仅花费了0.18-0.19秒(iPhone 5s)。
是的,您描述的问题确实存在。作为可能的解决方案,您可以使用ram-bundle
格式,metro
Bundler提供。
在这种情况下,您不会加载整个JS捆绑包 - 您只会加载零件,您需要在启动时需要(在很多应用程序中,很多地方都可能看不到,并且此功能只有在需要时,允许您加载这些零件)。因此,您可以简化入口点并仅加载捆绑包的一小部分。
您可以查看反应式 - 单块分机。该库与几乎所有流行的导航库完全集成在一起,并允许您推迟特定路由的负载。例如,如果您有登录屏幕,则只有在用户可以看到它们时,就可以在启动此屏幕上加载,而所有其他屏幕都可以在后台加载或启动加载它们。复杂应用程序的启动时间几乎与" Hello World"应用程序一样。
是否正好取决于您和您的应用程序用户=)
显然,如果减少JS捆绑包的大小可以提高时间,则应尽力完成它。我猜有几个步骤可以帮助您:
- 首先,干燥:加倍代码确实会增加尺寸
- 检查使用NPM软件包,删除未使用(也是未使用的内部模块)
- 使用第三方工具缩小并缩小捆绑包
也应进行降低初始化复杂性
- 检查算法的渐近复杂性 - 可能导致时间增加
- 删除未使用的变量,函数和数据 - 这可能是冗余内存使用的原因
,我可以建议您不仅尝试影响实际的时间,而且会影响时间的感觉。例如,使用动画飞溅屏幕