我有一个 iPhone 应用程序,似乎存在内存泄漏问题。这是一款益智游戏,在玩了几个谜题后,应用程序在设备上崩溃了。
我现在尝试使用 xcode 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
我的应用程序继续工作,没有发现其他泄漏的对象。经过几轮拼图后,它崩溃了。我不确定它与上面显示的泄漏对象有关。我的猜测是还有其他问题,但我认为我需要首先解决这些泄漏的对象。
在我看来,泄露的对象与日期/时间相关。我尝试注释掉与日期/时间相关的行,但我仍然得到相同的泄漏对象。有人知道我还应该检查这些泄露的对象是什么吗?蒂亚!
只需忽略不属于您的应用程序的所有泄漏即可。 Instruments 和 IOS/框架都不是完美的。您应该只关注在您自己的类中发现的泄漏。要发现应用程序中内存问题的根源:
1) 在模式编辑器中启用 NSZombieEnabled 模式——在这种情况下,仪器将提供更多信息。
2) 使用 Xcode 中的 Product->Analyze 工具——Xcode 将向您显示源代码中可疑的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)