【发布时间】:2013-11-06 08:31:49
【问题描述】:
我很抱歉,因为这可能是一个愚蠢和菜鸟的问题......
我在 cellForRowAtIndexPath 方法中使用 SDWebImage 在 UITableView 中显示图片,使用经典
[cell.pointPicture setImageWithURL:[NSURL URLWithString:thePoint.imageURL] placeholderImage:[UIImage imageNamed:POINT_DEFAULT_IMAGE]];
(显示的图片是轻巧且压缩良好的 jpg,只是一些 ko,是的,我当然使用的是 dequeueReusableCellWithIdentifier)。
当我使用“Instrument - Allocations”检查我的应用程序并向下滚动我的 UITableView(有 40 个包含图片的单元格,有点像 Instagram)时,我使用了大量内存! (见截图)
但它似乎是“VM”,尤其是 coreGraphics 库中的“VM: CG raster data”。
所以问题是:
- 正常吗?
- 这是一个严重的问题吗?
- 有没有办法避免这种情况?
很抱歉,在网上搜索了几下后,我找不到任何有关“VM:CG 栅格数据”的相关信息......知道吗?提前致谢!
【问题讨论】:
-
这是渲染服务器用于实际显示在屏幕上的视图的所有光栅化版本。您可能会遇到较大的内存负载,尤其是当您在视图中有要缩小的大图像时。运行泄漏仪器,看看是否有任何实际泄漏。
-
感谢@JasonCoco 的这些解释。是的,图片大小比显示它的视图大。对于泄漏,仪器未显示任何...
-
@JasonCoco 我只是尝试显示视图的确切尺寸(640x640,然后是 320x320)以避免所有缩小。不幸的是,使用的 CG 恢复数据量保持不变......还有一点奇怪的是,使用的内存量从未释放......我也找不到任何内存泄漏。
标签: ios uitableview memory-management memory-leaks sdwebimage