Swift:完美的记忆可能吗?

时间:2018-10-20 05:16:58

标签: swift xcode memory

我创建了一个非常复杂的购物应用,并对结果感到满意。一切都正确地初始化了,仪器说没有内存泄漏。但是,我发现在对应用程序进行大量测试时,内存会持续稳定地增加一点。磁盘空间还可以。但是我要说的是,每5分钟在该应用程序上增加0.02MB(很小)。这是一个快速交付的应用程序,因此我高度怀疑任何人一次使用它的时间是否足够长,甚至会导致整个MB的增加。我还是应该担心吗?是否有可能完全消除这一小幅增长?还是我应该回顾一下每一行代码。如果这个应用程序很重要,那么它永远不会超过50MB(因为即使经过30分钟的测试,它运行的速度仍然很低,它仍无法通过50MB;假设我运行了几个小时就可以了)

2 个答案:

答案 0 :(得分:0)

  

我还是应该担心吗?是否可以完全消除这一小幅增长?

使用“分配”工具在Instruments中运行您的应用,并观察应用闲置时发生的分配。了解分配的大小和频率应该可以帮助您了解正在发生的事情,并更好地了解应用程序的内存增长。

在了解分配是什么之前,您不知道是否需要解决这些分配问题,但是逐行浏览所有代码以寻找罪魁祸首,这是通向底层的充其量很慢。题。 Xcode包含可以在此处为您提供帮助的工具,使用它们可以改善您的应用程序并帮助您学会成为一名更好的开发人员。

答案 1 :(得分:0)

  

我还是应该担心吗?

我想找出要保留的对象,然后决定修复的重要性是否足够。

这些对象可能完全是良性的,或者它们所做的事情对您的应用确实很重要。

如果它是缓存中的静态字符串数组,并且随着时间的推移逐渐增长,那就很好了。

如果其中的大量ViewModel仍然存在于内存中,则它们都会监听通知,并发出网络请求或更改用户数据-然后将其杀死。