gpt4 book ai didi

iphone - 又一起 iPhone 内存泄漏事件呼救。寻求有关后续步骤的建议

转载 作者:行者123 更新时间:2023-12-03 20:00:55 26 4
gpt4 key购买 nike

我讨厌内存泄漏,并且通常为自己感到自豪,等等,等等。救命!

我遇到的泄漏并不大(最多几K),但我肯定想删除它们。泄漏分为两类,我从 Instrument 的泄漏工具中获取了每种类型的一些屏幕截图。

第一个是运行我的应用程序后 10 秒内发生的一些奇怪的 Java/Web 事情:无论我采用哪个代码分支。就好像后台发生了某些事情导致了它。我有一些来自备受尊敬的 iPhone 编程作者的示例代码,他们的代码也做了同样的事情,所以我不太担心应用程序运行期间丢失的 64 字节。这种泄漏早在我创建任何基于 Web 的表单(例如反向地理编码器等 MapKit 工具)之前就会发生……但我稍后会在代码中使用它们。

然而,第二个是阴险的,我觉得自己像个傻瓜,无法追踪它......因为让它发生是如此简单。我所做的就是在 Interface Builder 中创建一个 UITextField 并像我以前所做的那样使用它。每当 iPhone 弹出虚拟键盘时,它就会发生在我创建的任何 UITextField 上。而且,内存泄漏非常严重(一次数百字节);大概来自创建屏幕按钮所涉及的图形。

因此,需要明确的是,当我触摸这些文本字段中的任何一个时,虚拟键盘就会弹出,并且我会泄漏几百(或更多)字节。我什至不输入任何内容,分配任何变量等。顺便说一句,这只发生在每个文本字段第一次弹出虚拟键盘时。 (所以我的泄漏“在一定程度上得到了控制。”)(这就是他们对最近的油井所说的,嗯?)

您会问拥有这些 UITextField 的 Controller 有什么不同。好吧,我唯一能想到的是它是一个动态创建的 UIViewController,由 UINavigationController 管理。

由于在这两种情况下,我的代码从未显示在堆栈上,因此我不确定下一步应该是什么。我已经运行了新的 XCode 静态分析器,虽然它报告了一些警告,但它们都是良性的转移注意力的东西。

因此,我正在寻求有关下一步应该采取的建议。 (我已经开始注释代码、进行备份等过程。)

所附泄漏工具的屏幕截图。

看起来我只能包含一个链接,直到我获得一些代表点。我将展示后者的泄漏。

Memleak 2 屏幕截图: link text

-皮特

附注截至今天,我正在使用最新的 Xcode (3.2.3) 和最新的 4.0.2 iOS。

最佳答案

刚接触工具的人往往只看漂亮的图表,并且往往会被它误导。您应该注意数字而不是图表。

根据your screenshot ,这些是您正在使用的库的内存泄漏。值得注意的是这些框架:

  • JavaScript核心
  • 网络核心
  • 图形服务

由于框架导致了这些泄漏,因此除非您拥有源代码,否则您无能为力。

根据您的屏幕截图:

泄漏的内存总量:240 字节 (0.23 kb)。

连一个千字节都没有,所以我不会因此而失眠:P

关于iphone - 又一起 iPhone 内存泄漏事件呼救。寻求有关后续步骤的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3485929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com