为什么手动内存管理?

时间:2010-05-14 09:15:49

标签: objective-c

是否有自动内存管理计划?

手动管理内存的优点是什么?从长远来看,它是否可以节省内存?

我注意到.Net Windows应用程序 - 它们非常迟缓 - 这部分是由于垃圾收集器无法正常工作?

3 个答案:

答案 0 :(得分:0)

  

是否有自动内存管理计划?

在Mac上 - 10.5上已经有垃圾收集了。

在iPhone上 - 否(自4.0起)。

  

手动管理内存的优点是什么?从长远来看,它是否可以节省内存?

请参阅When NOT to use garbage collection?

答案 1 :(得分:0)

手动内存管理的优势主要在于您可以专门为您的应用程序专门进行内存管理,使其最佳并允许“简单”优化(在大小和速度上)。

自动内存管理在没有必要的情况下是有用的,甚至C ++也会知道(有计划在C ++中添加可选的垃圾收集器),但有时你真的需要控制场景背后发生的事情因为你有更大的视野应用程序的视图比任何编译器或垃圾收集器都要好。

在两者之间做出选择肯定是非常强大的,但它在大多数语言中都不可用。

答案 2 :(得分:0)

对于实时系统,垃圾收集会对程序的响应性产生负面影响。在他们的书小内存软件中,Weir和Noble讨论了其中的一些问题,你可以在这篇文章的末尾阅读section of their book. 在许多情况下,程序员只需选择编写自己的内存管理例程来解决这些问题。