解决iPhone/iPad内存不足问题

解决iPhone/iPad内存不足问题,ipad,cocoa-touch,pdf,memory-management,quartz-graphics,Ipad,Cocoa Touch,Pdf,Memory Management,Quartz Graphics,我有一个奇怪的问题,我在一个分页的UIScrollView中滚动,它显示PDF文档的页面(使用Quartz 2D和CATiledLayer)。当我翻页时,内存分配看起来很好,它会随着几个初始页面的增加而增加,然后保持稳定,因为它显然会释放为早期页面保留的内存。点击第x页(不是某个PDF页面或某个数字本身)时,内存使用量从几兆增加到308兆,应用程序崩溃 所以我的问题是:如何最好地找到导致这种情况的原因?instruments中的object alloc工具将内存显示为直接转到malloc。(大块

我有一个奇怪的问题,我在一个分页的UIScrollView中滚动,它显示PDF文档的页面(使用Quartz 2D和CATiledLayer)。当我翻页时,内存分配看起来很好,它会随着几个初始页面的增加而增加,然后保持稳定,因为它显然会释放为早期页面保留的内存。点击第x页(不是某个PDF页面或某个数字本身)时,内存使用量从几兆增加到308兆,应用程序崩溃


所以我的问题是:如何最好地找到导致这种情况的原因?instruments中的object alloc工具将内存显示为直接转到malloc。(大块)。

这是一个老问题,但我已经解决了这个问题,为什么不把它贴出来


原来凶手是PDF中的某种嵌入(矢量)艺术品。这将发生在几种不同的打印PDF-s上。CGPDF等人简直疯了。唯一的解决办法是使用适当的PDF制作工具对所述作品进行光栅化。

这是一个老问题,但我已经解决了问题,为什么不发布它呢


原来凶手是PDF中的某种嵌入(矢量)艺术品。这将发生在几种不同的打印PDF-s上。CGPDF等人简直疯了。唯一的解决办法是使用适当的PDF制作工具对所述作品进行光栅化。

附带说明的是,这不会发生在模拟器中,只会发生在实际的iPad上。毕竟,这是一个特定的页面,考虑到它不会在模拟器上崩溃,这是很奇怪的。它不会在模拟器上崩溃,因为那一个已经崩溃了(实际上)无限的内存和快很多倍的cpu。不完全如此。使用模拟器上的仪器根本无法检测到这个问题。我感觉模拟器使用的是来自OS X而不是iOS的一些低级CG内容(考虑到模拟器通常的工作方式,这是有意义的).作为旁注,这不会发生在模拟器中,只会发生在实际的iPad上。毕竟,这是一个特定的页面,考虑到它不会在模拟器上崩溃,这是很奇怪的。它不会在模拟器上崩溃,因为它(实际上)已经崩溃了无限的内存和快很多倍的cpu。不完全是。使用模拟器上的仪器根本无法检测到这个问题。我感觉模拟器使用的是来自OS X而不是iOS的一些低级CG内容(考虑到模拟器通常的工作方式,这是有意义的)。