内存使用率在ARC中非常高

时间:2012-07-18 12:44:55

标签: iphone memory automatic-ref-counting

在我的应用程序中,我注意到在标签之间切换时速度非常慢。进一步调查显示,在我的内存使用测试中,我的应用程序在5分钟的测试中超过70mb。我的原生电子邮件应用程序仅使用40mb。这不可能发生

我正在使用ARC,我认为如果我使用像

这样的东西
@property(nonatomic, strong)NSString *string;

ARC会自动解除此错误。它似乎根本就没有这样做。

我想知道的是,如果我可以通过在我的代码中使用dealloc来减少记忆(当我切换到ARC时,它会删除我所有的dealloc方法)或者是否有另一种方法可以加快我的应用程序。

为了向您提供有关该应用程序的更多信息,请列出以下关键点:

- 从webservice获取邮件和pdfs

- 存储数组以检查消息是否已被读取,删除或未读

每次有人点击选项卡

时,

-Mail选项卡都会检查来自网络服务的新邮件

- 检查pdf文件

任何信息都会对我有所帮助。

谢谢

修改

这是我的泄漏图片。它很多。

enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

找出这种高内存使用率的原因的最佳方法是使用Instruments工具,更具体地说是使用Leaks工具。

您可以在Apple开发者网站here上找到更多信息。

希望这有帮助。

答案 1 :(得分:0)

我对ARC并不熟悉,但我认为它可能会减慢您的应用程序的速度。为什么?想一想:ARC将根据您的手动版本自动执行“发布”工作。假设你有一个30行的方法,并在第一行创建一个对象,然后在第三行你不再需要它,你手动释放它。虽然ARC会等到方法结束,才能意识到不再需要你的对象了。现在假设您在方法中进行了大量的分配,ARC将保留所有分配,直到达到方法结束。手动释放恕我直言。