首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFBox 2不寻常的内存消耗

问PDFBox 2不寻常的内存消耗
EN

Stack Overflow用户
提问于 2017-04-06 07:05:45
回答 1查看 2.9K关注 0票数 0

我们正在尝试使用PDFRenderer的方法renderImageWithDPI来呈现来自不同PDF文件的图像。在特定的PDF中,对于某些页面,库呈现器具有不同的行为。

呈现本身要比其他类似的页面花费更长的时间,并且内存消耗达到异常大的值:进程消耗的内存大约每1-2秒增加50 of,直到达到应用程序进程在renderImageWithDPI中消耗的5GB内存的值。一旦线程完成renderImageWithDPI,内存消耗几乎立即下降到1.52GB。由于内存消耗高,有时会引发Java异常。

发生这种情况的页面与具有相同宽度、高度和磁盘大小的其他页面没有明显的不同。渲染是用250个DPI,用ImageType RGB完成的。此外,应用程序正在使用"-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider“参数运行。

这是内存泄漏还是预期的行为?另外,有人能解释一下为什么有些页面占用2GB内存,花1分钟来呈现,而另一些页面则在几秒钟内呈现?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-07 17:33:25

对PDF的分析显示,第34页有超过10000个XObject元素,几乎都是CMYK图像。您可以在PDFDebugger命令行应用程序中自己看到这一点,转到第34页,然后是参考资料,然后是XObject。在java中,转换它们的速度并不快。内存的使用很可能是由于我们缓存这些映像。您可以观察到,下一次显示页面时,它的完成速度要快得多。禁用缓存显示在常见问题中。

我也得到了一些速度改进(21秒而不是89秒),通过使用这个选项:-Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true。不过,图像质量可能略有不同,请参阅PDFBOX-3569进行讨论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43248021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档