React Native - 改善冷启动时间

时间:2017-02-15 04:12:34

标签: ios react-native

我正在开发的项目是使用react native来创建iOS应用程序。

以下是iPhone 5S发布版本中的冷启动时间

chart-data="{{id}}"

最慢的部分是等待反应库加载js包(2.2MB)。加载时间看起来正常吗?如何改善js捆绑加载时间?非常感谢。

减少js包大小可以缩短从应用程序启动到javascript加载的时间。对于一个新的Hello World项目,它只用了0.18-0.19秒(iPhone 5S)。

2 个答案:

答案 0 :(得分:0)

时间确定是否由您和您的应用用户决定=)

显然,如果减少js包的大小可以缩短时间,你应该尽力完成它。我猜有几个步骤可以帮到你:

  • 首先,DRY:加倍代码会增加大小
  • 检查是否使用npm包,删除未使用的(也作为未使用的内部模块)
  • 使用第三方工具混淆和缩小捆绑包

还应该做​​的是降低初始化的复杂性

  • 检查算法的渐近复杂性 - 可能导致时间增加
  • 删除未使用的变量,函数和数据 - 这可能是冗余内存使用的原因

我可以建议你也尝试不仅影响实际时间而且影响时间感觉。例如,使用动画启动画面

答案 1 :(得分:0)

是的,您描述的问题确实存在。作为一种可能的解决方案,您可以使用ram-bundle捆绑软件提供的metro格式。

在这种情况下,您将不会加载整个js捆绑包-您将仅加载启动时所需的一部分(在许多应用程序中有很多地方,用户甚至可能看不到,并且此功能允许您仅在需要时加载此类零件)。因此,您可以简化入口点并仅加载捆绑包的一小部分。

您可以查看react-native-bundle-splitter。该库与几乎所有流行的导航库都很好地集成在一起,可让您推迟特定路线的加载。例如,如果您有一个登录屏幕,则只有在用户看到它们时,您才能在启动时仅加载此屏幕,而所有其他屏幕均在后台加载或开始加载它们。而且,复杂应用程序的启动时间几乎与“ Hello world”应用程序的启动时间相同。