【问题标题】:How to check whether my app has leak or not?如何检查我的应用程序是否有泄漏?
【发布时间】:2016-12-27 07:38:34
【问题描述】:

我有下面这张图片,我使用 Instruments 来检查内存泄漏。我是 iOS 新手,所以我之前没有使用过 Instruments 来检查内存泄漏。我看过很多教程,但他们解释了如何做。但是我不明白哪种图形颜色是我的内存泄漏,我没有任何内存泄漏。

这是我使用 Instruments 运行的应用程序,直到我的应用程序的最后一个进程。任何人都可以建议我是否有内存泄漏?那“天蓝色”指的是什么?那个红色条是什么?如果我有内存泄漏,它会在这张图片中显示在哪里?

我正在使用 Objective-C 和 Xcode 7。

【问题讨论】:

  • 您似乎没有在运行检漏仪。这看起来像分配工具。
  • 是的,它的分配选项。它有什么用??。
  • 它显示了应用程序正在使用多少内存(这是天蓝色的图表)。从理论上讲,您可以确定应用程序中的哪些对象正在使用内存(即屏幕底部的文本)。请注意,如果天蓝色部分看起来像一个不断攀升的坡道,那可能是一件坏事。您的图表在初始启动后是平坦的,所以没问题。

标签: ios objective-c memory memory-leaks


【解决方案1】:

您可以通过泄漏配置文件检查您的应用是否泄漏:

进入产品->点击配置文件->点击Leaks instrument

打开泄漏仪器后,使用您的应用程序播放。

【讨论】:

    【解决方案2】:

    内存泄漏通常有两个原因:

    1. 一个保留循环,其中两个或多个对象以一种永远不会被释放的方式相互强引用(例如 A -> B -> C -> A)。
    2. 分配了一个对象,但从未释放。使用自动引用计数,这种情况非常少见,尽管如果您直接使用不支持 ARC 的较低级别的类,它仍然可能发生

    这里有一个有用的Apple doc 来解决这个问题

    【讨论】:

    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2011-04-12
    • 1970-01-01
    • 2013-11-09
    • 2013-05-21
    • 2019-08-21
    相关资源
    最近更新 更多