4

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

1.由于我们主要使用ARC,我现在应该花时间阅读关于内存管理的一整章吗?(只问这个问题以确保我正确地管理时间)

2.如果你在手动管理方面做得很好,你能得到比使用ARC更好的性能吗?(这样您的应用程序会运行得更快)

tnx

4

2 回答 2

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

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

2、实际上,它们的性能是一样的。只是让编译器做你之前做的事情。因为当你在类中保留一个对象(这是一个属性)时,我们总是在dealloc中释放。你在一个对象中分配一个对象方法,分配给本地指针,当这个方法的堆栈内存清理干净时,它会被释放;如果你在方法中保留它到方法的局部变量,你会在同一个地方释放它。然后你会发现它们都是可预测的.为什么不让机器来做呢?

于 2013-03-08T03:12:58.743 回答