Eit*_*tan 6 instruments uiimagepickercontroller uiimage ios automatic-ref-counting
我的应用程序使用ARC,执行以下操作:
重复此序列将意味着屏幕上会显示多个压缩缩略图.大约7或8张照片后,应用程序将因内存不足而崩溃.
在Instruments中,我试图将Allocations与Memory Monitor结合使用来查找问题的根源.
一些仪器统计:
分配 - 拍摄照片后,实时字节跳跃大约2 MB,但在原始图片参考设置为nil后,则下降1.5 MB.这似乎是一件好事,但......
这是应用程序的最终状态.#Living似乎相对于Live Bytes而言非常高,对吧?
Live Bytes #Living #Transitory Overall #Overall Bytes
3.72 MB 24538 80679 90.1 MB 105301
Run Code Online (Sandbox Code Playgroud)
内存监视器(跟踪检查头) - 我的应用程序启动为7.5 MB并拍摄一张图片导致增加~13 MB.对于我上面列出的状态,Memory Monitor表示该应用占用了72.67 MB的"Real Memory"和123.79 MB的虚拟内存.
鉴于Live Bytes非常小,我知道我做得对. 但是,鉴于其他地方的内存占用量很大,我也确定我做错了.任何想法可能是什么,或如何追踪它?
埃坦27,
这不是 ARC 问题。这是关于如何管理内存中的多个大项。iOS 有多种机制可以在这方面为您提供帮助。如果您将图像写入闪存,然后将其重新打开为内存映射数据,那么您的问题将基本上得到解决。如何?操作系统使用不可变数据管理到驻留内存占用的映射。由于这些项目是不可变的,因此永远不会脏,因此它可以在必要时刷新映射的页面。这种机制的缺点是每个应用程序可用的文件描述符数量有限。
安德鲁
| 归档时间: |
|
| 查看次数: |
1906 次 |
| 最近记录: |