react-native ios,如何在内存不足的情况下从缓存中释放本地图像?

时间:2019-01-03 16:01:37

标签: ios react-native memory

我正在使用的应用程序可以对许多本地图像进行最终处理,例如具有require(../assets/MyImage.png)之类的来源的图像。

在开发过程中,我没有遇到任何问题,但是,当我构建要在iPhone 5s上发布的应用程序时,我开始随机重启设备。经过一番研究,我发现每当浏览应用程序并加载所有这些不同的图像(其中一些是较重的背景图像)时,它们都会保存在iOS内存/ RAM中。

卸载屏幕/导航到其他屏幕后,内存并未清除,在我使用我的应用程序并加载新图像并最终导致应用程序崩溃时,它一直在增长。

我发现iOS中有一个名为didReceiveMemoryWarning的AppDelegate方法,当应用程序使用过多内存时,该方法可用于执行缓存清除,但是我无法弄清楚什么缓存以及如何清除缓存删除iOS中的本机图像?

非常感谢您对该主题的任何建议。

注意:我读过某个地方,iOS会自动管理内存,但是在使用XCode内存探查器和Instruments之后,我不相信这种情况的发生,只要在屏幕上安装新资源,它就会持续增长。 / p>

内存分析器输出 enter image description here

1 个答案:

答案 0 :(得分:1)

在尝试寻找解决方案的各种尝试之后,我最终使用了以下图像包https://github.com/DylanVann/react-native-fast-image

它改善了内存管理和图像性能。作为额外的好处,它允许在iOS项目中使用WebP图像,从而大大减少了我的捆绑包大小。