手动内存管理VS ARC

时间:2013-03-08 02:45:24

标签: objective-c cocoa

我正在读一本关于Objective C的书,我想知道两件事:

1.我是否应该花时间阅读整篇关于内存管理的章节,因为我们主要使用ARC?(只是问这个问题以确保我正确地管理时间)

2.如果您在手动管理方面做得非常出色,您可以获得比使用ARC更好的性能吗? (就像你的应用程序将更快地工作)

TNX

2 个答案:

答案 0 :(得分:5)

  1. 您至少应该熟悉手动内存管理的基本概念,因为ARC使用它。您至少需要了解三件事:retainreleaseautorelease。这将有助于您了解有关ARC内部工作的讨论。
  2. ARC主要是编译器技巧(运行时支持)。您可以编写更少的代码,但无法从中获得更好的性能。从本质上讲,ARC允许您以声明方式处理内存管理 ,而手动管理则使用命令式样式。但是,两个系统都从运行时调用相同的方法。

答案 1 :(得分:1)

1,当然你应该.ARC基于相同的内存管理,只需让编译器做同样的工作。如果你想掌握一种技术,试着知道它是如何工作的更快的方法。

2,实际上,它们的性能相同。只需让编译器执行您之前所做的操作。当您在类中保留一个对象(属性)时,我们总是在dealloc.you中释放alloc在一个方法中的对象,分配给本地指针,当这个方法的堆栈内存清理时它将被释放;如果你在方法中将它保留在方法的局部变量中,你将它放在同一个地方。然后你就会发现它们都是可以预测的。为什么不让机器去做呢?