使用 15-20 分钟后,我的应用程序占用了大约 50-60 MB 内存,因为有很多数据库操作。
那么,任何人都可以告诉我如何释放我的应用程序中不必要的内存,这是不必要的吗?
NOTE : I am working on ARC based project
使用 15-20 分钟后,我的应用程序占用了大约 50-60 MB 内存,因为有很多数据库操作。
那么,任何人都可以告诉我如何释放我的应用程序中不必要的内存,这是不必要的吗?
NOTE : I am working on ARC based project
你可以通过这个在 iOS 应用程序中查找内存泄漏
在 App 中定位内存问题
以下配置选项通过活动监视器提供特定于内存的信息
发现泄漏
定位泄漏内存 打开泄漏仪器。
从选择目标弹出菜单中选择您的应用程序。
单击录制按钮。
练习您的应用程序以执行代码,并在显示泄漏时单击停止按钮。
单击“详细信息”窗格中标识的任何泄漏对象。
在 Extended Detail 窗格中,双击代码中的指令。
单击详细信息窗格中的 Xcode 图标以在 Xcode 中打开该代码。
即使您在启用 ARC 的环境中工作,您也需要以正确的方式管理内存分配。
例如,永远不要使用strong
参考分配您的对象,什么时候weak
会这样做。考虑在正确的地方使用 also copy
, assign
references。
在你完成它们之后,将你的对象指向 nil 也会有所帮助。
http://www.techrepublic.com/blog/ios-app-builder/understand-memory-management-under-arc/239
使用仪器。教程很多,这里有一个。
如果对象对用户不可见,则不要将对象保存在内存中,尤其是它具有 blob 对象。尝试用 Core Data 替换 sqlite。它有很多优点,比如
上面的许多事情也可以用 sqlite 来完成,但你需要自己制定机制来做到这一点。
使用仪器检查您是否没有泄漏任何内存。如果您正在下载启用缓存的内容,[[NSURLCache sharedURLCache] removeAllCachedResponses] 以释放一些内存