首页 > 解决方案 > react-native ios,如何在低内存情况下从缓存中释放本地图像?

问题描述

我正在使用一个应用程序,该应用程序利用了许多本地图像,即具有类似require(../assets/MyImage.png).

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

在我卸载屏幕/导航到不同的屏幕后,内存没有被清除,它只是在我使用我的应用程序并加载新图像时不断增长,最终应用程序崩溃了。

我发现 iOS 中有一个 AppDelegate 方法被调用didReceiveMemoryWarning,可用于在应用程序使用过多内存时执行缓存清除,但我无法弄清楚什么缓存以及如何清除以删除 iOS 中的 react-native 图像?

将不胜感激有关该主题的任何建议。

注意:我在某处读到 iOS 会自动管理内存,但是在使用 XCode 内存分析器和 Instruments 之后,我不相信会发生这种情况,只要新资源安装在屏幕上,它就会不断向上增长。

内存分析器输出 在此处输入图像描述

标签: iosreact-nativememory

解决方案


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

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


推荐阅读