【发布时间】:2012-05-01 19:07:51
【问题描述】:
我已经阅读了很多关于在 Instrument's 中跟踪内存使用情况的文章,但发现很少与 Monotouch 结合使用。
这里似乎有三个反对的主张:
- 使用Instruments的Allocation实用程序。 “活动字节”的数量是应用程序使用的物理内存量。
- 使用内存监视器插件。从进程列表中,选择您的应用并检查“真实内存”列。这是当前使用的 RAM 量。
- 使用 VM Tracker 并制作自动快照。 “脏大小”,如果你想要的话。
据我观察:
- 一旦触发 GC,“Real Memory”就会下降
- 即使我的“Live Bytes”保持在 30MB 左右,我最终也会收到内存警告
- 在“实时字节”不变的情况下,“实际内存”可以显着增加,并且可以轻松增长到 200MB 或更多。
- 在使用 QLPreviewController 并查看一个非常大的 Word 文档(1000 页)时,滚动浏览该文档会疯狂地增加实际内存。如果收到内存警告,则实际内存和活动字节都不会下降。最终,应用程序会崩溃; Monotouch 问题还是 Apple 的问题?
- 有时,真实内存似乎在增长,没有什么可以阻止它。再说一次,GC 似乎清除了大部分。这没有真正的模式。
那么正确答案是什么?真的有吗?
编辑:我附上了两张图片。一个显示在我的应用程序生命周期中的一个阶段的内存使用情况,以及稍后的几秒钟。两个图像都反映了 UI 中同一点的内存使用情况,屏幕上只有两个控制器。也许有人仍然可以评论从这些数字中可以读出什么,尤其是神奇的“记忆标签 70”。
【问题讨论】:
标签: memory-management xamarin.ios instruments