【发布时间】:2013-02-23 07:03:50
【问题描述】:
我的应用几乎已完成开发。该应用程序在随机点退出,并且用户界面冻结/加载非常缓慢。该应用程序是在没有 ARC 的情况下制作的,我刚刚开始使用 Xcode Instruments 来解决内存问题。我正在考虑将整个项目转移到 ARC,但不知道这是否会有所帮助。此外,Instruments Allocations 处理的许多进程似乎并没有占用太多内存。
我需要找出提高应用效率的最佳方法。我对该领域知之甚少,并且阅读了各种关于如何做某些事情以提高效率的教程,我只是不知道从哪里开始。我应该转换为 ARC 吗?我应该专注于使用 Xcode 中的分配/泄漏/配置文件吗?我知道它可能特定于我的应用程序,我只是不知道从哪里开始。任何一般性的建议都会很棒!谢谢大家!
【问题讨论】:
-
ARC 不会加快任何速度。对于真正响应式的界面,您应该将处理移到后台。
-
所以我应该创建自定义方法,而不是在 viewdidappear 和 viewdidload 中调用我的 JSON 提要/其他进程?
-
不止于此。苹果让后台处理变得微不足道。您可以在低端使用 GCD,在高端使用 NSThread 和 NSOperation。困难的部分是选择你想要实现的(或混合使用,只需记住标准的线程资源访问规则)。
-
嗨@Brandon,可以在应用退出时发布日志消息。如果应用程序没有发布任何日志消息并退出,则可能是内存泄漏,请复制项目并将其转换为 ARC 并重试。
-
谢谢大家,看起来这比预期的要复杂一些。我有很多在 viewdidload 和 viewdidappear 中被调用的网络电话。我没有做任何特别的事情来使这些“异步”我认为这会导致缺乏响应能力。
标签: iphone ios objective-c