iPhone应用程序的内存释放有多重要?

时间:2013-02-24 06:19:14

标签: iphone objective-c memory memory-management

我是Objective C的初学者。我知道java编程,在介绍级别课程中,内存发布不包括在内(我不知道在更高级的课程或java编译器句柄中是否有一个)这个)。但是,即使在介绍级别,我也需要为Objective C程序手动释放内存。我知道这样做是个好习惯,但这有多重要?特别是如果我想开发iPhone应用程序,内存释放非常紧急(而不这样做会导致处理速度显着减慢)?通过iPhone应用程序,我不是在谈论具有梦幻般的视觉效果,高品质音效以及其他可能使记忆释放变得重要的3D游戏。我只是想开发一些小工具,如计算器,提醒或日记本。那么记忆释放有多重要?

我认为在过去,当C语言程序在可能没有太多内存和处理速度的超级旧计算机上运行时,内存释放很重要。但考虑到iPhone是一种非常先进的设备,手动内存释放有点过时吗?

2 个答案:

答案 0 :(得分:6)

  

我知道java编程,在介绍级别课程中,内存版本没有被覆盖(我不知道是否有更高级别的课程或java编译器处理这个)。

不完全是编译器,但Java VM有垃圾收集器,因此不必担心内存管理。

  

那么记忆释放有多重要?

非常重要。无论是运行时还是程序员,无论您使用的是MRC还是ARC(在Objective-C中),都应该将应用的内存指纹保持在低水平尽可能通过妥善管理记忆。

  

我认为在过去,当C语言程序在可能没有太多内存和处理速度的超级旧计算机上运行时,内存释放很重要。但考虑到iPhone是一种非常先进的设备,手动内存释放有点过时了吗?

喔。我只是理解为什么很多应用程序会占用我iPhone的所有免费内存。那是因为这是现在“开发者”的态度。我明白了......

答案 1 :(得分:-1)

这取决于你在做什么。一般来说,正确释放内存非常重要,否则会占用所有内存。对于像游戏这样的东西,这种情况很快就会发生,或者对于只有文字和数字的东西,这种情况会很慢发生,尽管它仍然存在。但是,内存释放并不像听起来那么难。如果你使用ARC,你几乎可以忘记它(尽管有一些奇怪的情况)。即使您不使用ARC,Apple也会为您做很多事情,比如在逻辑时调用对象的释放(比如删除viewController时)。

此外,内存管理通常仅适用于使用面向对象的代码。如果你只是制作一个简单的计算器,你可能不需要任何面向对象的东西,你可以只使用浮点数。对于只处理浮动的简单应用程序,将没有内存管理。