【发布时间】:2012-06-22 04:33:42
【问题描述】:
我几乎完成了我的第一个 iOS 应用程序的编写,但我现在遇到了一个问题,应用程序有时会冻结几秒钟,我不知道为什么。
所以为了让您了解这款应用,它的布局有点像 facebook 的布局,所以我在左侧有一个菜单,在右侧有一个内容
------------------------------------
| | |
| | |
| | |
| UI | |
| TABLE | UITABLEVIEW |
| VIEW | |
| | |
| | |
| | |
| | |
| | |
| | |
------------------------------------
左侧有一个用户列表,点击它会显示一个带有个人资料的模式视图。
为了让您了解分配的数量,这是我第一次启动我的应用程序的时间:
实际上已经很多了,右边的 tableview 由带有图像和 4 个标签的单元格组成(有时是 UITextView)
当我点击一个用户并启动模态视图时,分配增加了大约 20MB
但是,我认为这是问题所在,当我关闭模式视图并再次打开它时,分配增加了 50MB
这似乎不太正常,我发现很难检查到底哪里出了问题。
所以一个视图问题: - 关闭模式视图时,分配不应该再次下降吗? - 我怎么才能看到哪里出错了,好像某处有巨大的内存泄漏
【问题讨论】:
-
再次打开视图,看看使用率是否进一步上升。如果是这样,那就是泄漏。如果没有,那只是惰性内存回收。 (为什么在不需要可用空间并且您以后只需要重新分配它们时释放资源?)
-
@DavidSchwartz,它只会继续运行,每次我打开它都会增加 30MB 左右
-
另外,当我关闭模式视图时,我的活动字节数不会下降
-
好的,现在你有一个泄漏。每次打开/关闭视图时,无论哪种分配持续增加,泄漏都是如此。
-
据我所见,似乎是我的 tableview 中使用的单元格导致了这个问题。它们都用于开始屏幕和作为模式打开的视图也许它们只是很重(3个按钮,2个视图,8个标签)
标签: ios instruments allocation