- 应用程序内存管理是在程序运行时分配内存的过程,使用它,并在完成后释放内存。
- 一个写得好的程序尽可能少地使用内存。
-
在Objective-C中,它也可以被看作是在许多数据和代码之间分配有限的内存资源的所有权的一种方法.
memory_management_2x.png
屏幕快照 2017-07-13 10.34.28.png - “manual retain-release” or MRR;
-
Automatic Reference Counting, or ARC, Leaks cause your application to use ever-increasing amounts of memory, (强烈建议您使用ARC进行新项目。)
良好做法防止与内存相关的问题
屏幕快照 2017-07-13 10.36.06.png
内存管理不正确导致的主要问题有两种:
- 释放或重写仍在使用的数据
这会导致内存损坏,并且通常会导致应用程序崩溃,或者更糟的是,损坏的用户数据。 -
不释放不再使用的数据会导致内存泄漏
内存泄漏是分配的内存不被释放的地方,尽管它再也不会被使用。泄漏导致您的应用程序使用不断增加的内存量,这反过来可能导致系统性能较差或您的应用程序被终止。
屏幕快照 2017-07-13 10.41.15.png
然而,从引用计数的角度考虑内存管理往往适得其反,因为您倾向于根据实施细节而不是实际目标来考虑内存管理。相反,您应该从对象所有权和的角度考虑内存管理。
Using Autorelease Pool Blocks.
屏幕快照 2017-07-13 10.48.53.png使用分析工具调试内存问题
Xcode中内置的Clang Static Analyzer。
网友评论