我试图在我的代码中找到另一个内存泄漏,但我似乎不知道什么是CG Raster数据。在使用启用自动快照的VM跟踪器时,CG Raster数据似乎是唯一增加的部分。在不增加拨款的情况下,这些资金也在稳步增加。
我不完全确定CG Raster数据是什么,也不知道我将如何修复它,但在这一点上,不断增长的内存占用最终会导致内存错误和崩溃,所以这是不好的!我自己进行文本呈现(使用CoreText),所以我认为这与此有关。我也在装照片吗?
下面是足迹的图片:

更新:这个问题仍然存在,但有趣的是,我可以将它与UIFoundations内部的漏洞联系起来,称为“NSConcreteGlyphGenerator”。似乎只有当我在实际绘制的boundingRectWithSize方法中的属性字符串上调用“CoreText:”方法时才会发生这种情况。具体而言,这条线是:
[displayString boundingRectWithSize:CGSizeMake( self.frame.size.width, self.frame.size.height ) options:0 context:nil];慢慢地追踪..。
发布于 2012-09-29 04:41:02
我不知道“CG光栅数据”可能包含的所有内容,但我确信其中包含的一件事是.由Core Graphics分配用于存储光栅数据的内存,也称为位图。
具体来说,在我的应用程序中,我使用CGBitmapContextCreate创建了两个256x256位图上下文。我将NULL作为data参数传递,以便Core为我分配位图内存。每像素32位(4字节)的256×256位图需要256 KiB = 64页,每页4 KiB。在“仪器”中,我得到两个“CG光栅数据”块,每页65页。如果我注释掉其中一个位图上下文,我只会得到一个65页的“CG光栅数据”块。
另一方面,我的应用程序中也有一个CATiledLayer。CATiledLayer为我设置了自己的图形上下文,我相信它使用窗口服务器(springboard on iOS 5,backboard on iOS 6)直接访问的共享内存创建上下文。我没有看到任何与这些图形上下文对应的“CG光栅数据”块。
发布于 2015-03-05 13:11:02
我也有同样的问题,CG光栅数据内存增加,只是简单地推送和弹出一个视图控制器。我花了一段时间认为这是一些绘图代码的问题。最后,我找到了一个委托,而不是弱引用正在被推送和弹出的视图控制器,所以当我弹出视图控制器时,它并没有被释放。CG Raster数据碰巧是视图控制器足迹中最大的一部分,所以我错误地将问题归咎于这个问题,因为最初没有发布视图控制器本身(因此,没有发布视图,其中有些视图具有CG Raster数据)。
简而言之:如果您看到内存泄漏了CG Raster数据,请查看可能包含视图的视图控制器,并确保它们被释放。
发布于 2012-09-29 03:08:22
这不是很好的答案,但只是为了让调查开始.
我认为CG光栅数据与iOS 6是新的,但在iOS 5中作为CG图像存在。我在这两个模拟器上进行了测试,在iOS 5上,没有出现CG Raster数据,但是如果您比较iOS 6和iOS 5上的总数,CG图像几乎等于CG Raster数据,而CG图像没有显示在iOS 6上。所以我很确定他们只是将CG图像重命名为CG Raster数据。
至于CG图像到底是什么,我已经想了好几个月了。我认为这只是系统处理的与视图布局相关的事情,你并不真正控制,因为我的应用程序实际上没有任何UIImages或CG图像,而且我的CG图像内存相当高,所以它可能与核心动画和视图布局有关。
https://stackoverflow.com/questions/12503185
复制相似问题