如何在iOS中清理我使用的应用程序RAM?

时间:2017-05-18 06:24:58

标签: ios memory

在某些加载情况下,我正在制作一个有一些障碍(冻结一点)的游戏。

如果我启动手机或删除/重新安装游戏,则会出现故障。如果我杀了应用程序并重新打开,那么故障就会消失,这让我相信它们会在游戏资产被加载到RAM中时发生。当我杀死应用程序时,内存变为非活动状态,但如果我重新打开游戏,它仍然可以快速加载。

我需要一种方法来清理RAM,这样我就可以快速重现故障,也就是说,比重新启动手机或重新安装应用程序更快。

我试图做trick involving holding the wake button then home button但显然只会杀死所有应用并且不会删除内存。

我还尝试使用this project使用mallocmemset来清理内存,直到它崩溃(分配并擦除更多内存直到它崩溃),但它不会清理我关闭的游戏使用的记忆。我的印象是iOS从我的游戏之前使用的应用程序中释放非活动内存,因此内存分配应用程序永远不会有机会使用我的游戏的非活动内存,因为它首先被杀死。

因此,我想了解iOS如何选择使用哪种非活动内存,以及如何使我的应用程序从RAM中清除非活动内存。

请注意我在播放时并没有试图找到免费内存的方法,而不是试图让游戏使用更少的内存,我正试图清除游戏中使用的内存 之后游戏关闭,因此在我打开游戏的时候,所有障碍都会发生。

我正在使用iPhone 6,iOS 10.3.2。

1 个答案:

答案 0 :(得分:0)

用两个词来形容这一点是不可能的。首先,我建议您查看此article

如果要手动释放不必要的对象,请查看UIViewController的didReceiveMemoryWarning()方法的说明