我注意到当搜索大型PDF文件时,应用程序的内存使用量会增加,因为PDFKit正在进行某些内部搜索缓存。有没有办法控制这个缓存大小?在我的情况下,当搜索完成时,缓存的内存增加了500MB以上。
为了在PDF文档中搜索,我使用了以下方法:
func beginFindString(_ string: String, withOptions options: NSString.CompareOptions = [])
我注意到当搜索大型PDF文件时,应用程序的内存使用量会增加,因为PDFKit正在进行某些内部搜索缓存。有没有办法控制这个缓存大小?在我的情况下,当搜索完成时,缓存的内存增加了500MB以上。
为了在PDF文档中搜索,我使用了以下方法:
func beginFindString(_ string: String, withOptions options: NSString.CompareOptions = [])
x
页实例化一个新的 PDFDocument
对象。我解析了范围 nx ..< (n+1)x
中每个页面的文本,并搜索关键词。通过每个范围实例化一个新的 PDFDocument 对象,先前的对象和索引页面也被释放了。此外,每个页面的文本字符串可以缓存,这需要比 PDFKit 内部文档索引搜索时更少的内存。如果页面已经缓存,则以下次搜索几乎立即执行。