gpt4 book ai didi

iphone - CGPDF iPhone/iPad 内存问题

转载 作者:行者123 更新时间:2023-12-03 20:35:21 28 4
gpt4 key购买 nike

多年来,我一直在努力尝试为 iPhone/iPad 制作一个可用的 PDF 阅读器,但它永远不会停止消耗内存。看来所有用CGContextDrawPDFPage绘制的页面都被内部缓存起来,永远不会释放。

我不是唯一遇到此问题的人:http://lists.apple.com/archives/quartz-dev/2010/Apr/msg00025.html

http://web.archiveorange.com/archive/v/SEb6acvPicMB2NdIjEd3

第一个线程的一个响应:

If this is what I think it is, it isn't a leak but rather a cache. Instead of retaining the PDF document between calls, try creating the document, getting and drawing the page, then releasing the document when your done.

我已经尝试过,它解决了问题,但速度太慢了。而以“正常”方式执行此操作(即无需为每次绘制加载/释放 CGPDFDocument)效果良好且相当快,直到我到达文档的第 4 或第 5 页并崩溃。

我已经用谷歌搜索这个问题很多年了:每个人都有同样的问题,但显然没有人能解决这个问题。我发现的唯一示例加载了一页 PDF,因此显然一切正常,直到您加载包含多个页面的文档(当然,如果其中包含图像,它会更早崩溃)。这真让我抓狂。

所以问题是:您如何在应用程序中使用 CGPDF 处理 PDF 绘图?任何帮助将不胜感激。谢谢。

最佳答案

我当前的企业项目基于 PDF 阅读器。我不发布 CGPDFDocument,我可以翻阅 14 页的 Apple pdf,应用程序最大大小为 30mb。我无法给您代码,但我可以为您指出正确的方向。

我在这里启动了一个类似的线程:Fast and Lean PDF Viewer for iPhone / iPad / iOs - tips and hints?

一些提示:

-尽可能将任何媒体保存到磁盘。

-如果在 TiledLayers 上渲染,请使用更大的tileSizes

-请注意,图像的渲染速度比 CGPDFPageRef 更快

-使用 NSOperations 准备前面的页面
时间。

-回收页面对象

-不需要时立即关闭所有打开的上下文

-收到内存警告时释放并重新加载 DocRef

关于iphone - CGPDF iPhone/iPad 内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915979/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com