gpt4 book ai didi

ios - 在 PDF 中搜索会过多增加应用程序的内存使用量

转载 作者:行者123 更新时间:2023-12-01 19:29:19 24 4
gpt4 key购买 nike

我注意到,当我在大型 PDF 中搜索时,应用程序的内存使用量会增加,因为 PDFKit 正在执行一些内部搜索缓存。有什么办法可以控制这个缓存大小吗?就我而言,搜索完成后缓存内存会增加超过 500 MB。

为了在 PDF 文档中搜索,我使用了:

func beginFindString(_ string: String, withOptions options: NSString.CompareOptions = [])

最佳答案

感谢您的意见。要求是在客户端的 PDF 中进行搜索。就我而言,PDF 大约有 300 页,其中还包含图像。搜索完成后,内存使用量并没有下降一点,直到 PDFDocument 被释放为止。当包含 PDFView 的屏幕被关闭时,通常会发生这种情况。我认为这是 PDFKit 在搜索时对页面建立索引所做的某种优化。

我找到了一种解决方法,可以在不增加应用内存使用量太多的情况下工作。我的解决方案是实例化一个新的 PDFDocument对象每个 x页。我解析了 nx ..< (n+1)x 范围内每个页面的文本。并搜索关键字。通过在每个范围实例化一个新的 PDFDocument 对象,先前的对象被释放,索引页面也被释放。此外,每个页面的文本字符串都可以被缓存,这比搜索时 PDFKit 内部文档索引需要更少的内存。如果页面被缓存,接下来的搜索几乎立即执行。

该解决方案具有良好的性能结果。它还具有了解当前搜索进度的优点。这是因为您拥有当前范围的信息以及完成搜索所需的范围总数。此外,该解决方案还可以通过在单独的线程中执行每个范围内的搜索来并行化。

关于ios - 在 PDF 中搜索会过多增加应用程序的内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51709014/

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