【问题标题】:What are these memory leaking objects, detected by xCode Instruments?xCode Instruments 检测到的这些内存泄漏对象是什么?
【发布时间】:2013-11-14 00:31:21
【问题描述】:

我有一个 iPhone 应用程序,它似乎存在内存泄漏问题。这是一款益智游戏,经过几道谜题后,应用程序在设备上崩溃。

我现在正在尝试使用 xcode Instruments 来检测正在发生的事情。第一次使用 Instruments。

我注意到“泄漏”图中有一个泄漏条,就在加载视图的时间。我复制了下面泄露的对象。

Leaked Object   #   Address Size    Responsible Library Responsible Frame
__NSTimeZone    1   0x1f87cfc0  32 Bytes    CFNetwork   _CFGregorianDateCreateWithBytes
icu::OlsonTimeZone  1   0x1f1a9a00  1.00 KB CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
icu::OlsonTimeZone  1   0x1f881850  128 Bytes   CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
icu::OlsonTimeZone  1   0x1f8817d0  128 Bytes   CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
icu::OlsonTimeZone  1   0x1f1a7a00  1.00 KB CFNetwork   PACEntryStreamCallback(__CoreReadStream*, unsigned long, void*)
__NSTimeZone    1   0x1f87d010  32 Bytes    CFNetwork   _CFGregorianDateCreateWithBytes

我的应用程序继续运行,没有发现其他泄漏对象。经过几轮谜题,它崩溃了。我不确定它是否与上面显示的泄漏对象有关。我的猜测是还有其他问题,但我认为我需要先解决这些泄漏的对象。

在我看来,泄露的对象与日期/时间有关。我试图注释掉与日期/时间相关的行,但我仍然得到相同的泄漏对象。任何人都知道我应该检查这些泄漏的物体是什么?蒂亚!

【问题讨论】:

  • 这些泄漏非常小(总共不到 3 KB)。它们不太可能是您的问题。当您的应用崩溃时,堆栈是什么样的?
  • @user1118321,这里有详细信息,因为这实际上是另一个问题。谢谢。 stackoverflow.com/questions/19750090/…

标签: objective-c xcode memory-leaks instruments


【解决方案1】:

忽略所有不属于您的应用程序的泄漏。 Instruments 和 IOS / frameworks 都不是完美的。您应该只关注在您自己的课程中发现的这种泄漏。发现应用程序中内存问题的根源:

1) 在 Schema 编辑器中启用 NSZombieEnabled 模式——在这种情况下 Instruments 会提供更多信息。

2) 在 Xcode 中使用 Product->Analyze 工具 -- Xcode 会向您显示源代码中的可疑位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2015-09-14
    • 2011-10-10
    • 1970-01-01
    • 2012-07-16
    • 2010-10-09
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多