谢谢。
内存泄漏是由操作系统为您的程序分配并在其运行时使用的一些内存块,但在程序完成使用后未正确返回以供其他用途使用。所以这些内存被“丢失”了。您的程序没有使用它,但系统还不知道它可以被释放以供其他用途使用。
当您的应用程序运行结束时,由操作系统分配给它的所有内存将被释放以供重新使用。这回答了你的问题。
然而,内存泄漏是一个重大的缺陷。在像 iPhone 这样的低内存设备上,您消耗的内存越少越好,您不希望在运行时泄漏内存。如果设备的内存不足,您的应用程序可能会意外终止或崩溃。
内存泄漏会在你分配任何对象并在运行应用程序时错过释放这些对象时发生,因此在Xcode中进行分析将有助于检查内存泄漏,并且在Xcode中运行配置模式将有助于检查应用程序中可能存在的泄漏。
并使用NSAutoReleasePool来释放自动释放对象,这些对象在仅分配对象而不分配时将被创建。
希望它有所帮助。
内存泄漏是应用程序中的问题,但可能会对总可用RAM产生副作用。
它们是被标记为正在使用但实际上不再使用的内存块。因此,它们对应用程序而言是丢失的。如果您有泄漏,这将增加内存消耗。系统会注意到不良的内存使用情况,并且看门狗(jetsam)可能会强制关闭应用程序。
因此,请尽量减少内存泄漏;-)
它对整个操作系统有影响,但后果微乎其微。因为当您点击Home按钮时,您的应用程序并没有被杀死,而是“后台运行”,您的应用程序所使用的所有内存仍然处于活动状态,无法提供给系统使用。Jetsam会首先告诉您内存不足,并要求您清除不需要的内容。当然,您无法释放泄漏的内存。
如果您仍然为系统使用过多的内存,并且它需要为另一个进程分配更多的内存,则您的应用程序将被终止。它所使用的所有内存都将被释放,包括泄漏的内存。
泄漏是不好的,请在Build and analyze中使用静态CLang分析器。