Android React Native上的(native?)内存崩溃,报告的内存使用率较低

时间:2018-12-27 20:32:41

标签: reactjs performance react-native react-native-android

我无法找到有关对Android上运行的RN应用程序的内存不足异常进行故障排除的具体信息。我一直在向Bugsnag仪表板报告一些OOM错误,所有这些似乎都很糟糕。

  • 在任何繁琐的逻辑/渲染等之前,崩溃发生在登录屏幕上。
  • 报告的内存使用率低(应用程序使用3MB时发生了一次崩溃)。通过电子邮件发送Bugsnag之后,这可能不包括NDK中使用的任何内容。
  • 可用内存远远超出了已用内存(尽管不包括NDK使用的内存)

这并非仅适用于较旧的设备-使用该应用程序使用13MB(加上NDK)的应用程序在Galaxy S9上发生了一次崩溃,并且仍然有255MB。

在调查期间,我当然暂时启用了largeHeap,但是由于报告的内存使用率较低,我仍然看到崩溃。我唯一的方向是检查RN是否正在耗尽本机内存,在我的控制台中没有将其报告为“已用内存”。

在对我的应用程序进行性能分析(使用调试变体APK,而不是针对开发服务器)时,我确实看到本地内存使用率似乎很高-81mb,而应用程序在登录后仅坐了一会儿。它徘徊在30-40mb左右登录之前。

enter image description here

我已经确保我的代码在崩溃工作流期间不会进行任何API调用或加载资源。登录非常简单,由渐变,一些文本和视图以及加载的react-native-app-auth组成以处理登录。在该库中执行身份验证时,我看不到峰值。

是否有任何工具或方法来检查RN为什么吞噬了这么多本机空间?还是这很正常?我目前使用的是RN 0.57.5,React 16.6.3。我无法在iOs设备上进行测试,以检查这是否是Android特有的问题。

1 个答案:

答案 0 :(得分:0)

您尝试过这个吗?

将此添加到您的“ android / app / src / main / AndroidManifest.xml”

<application android:largeHeap="true"

ref:now available