所以我正在努力使用 PDFBox 1.8 将遗留框架迁移到 PDFBox 2.x 但是,我观察到使用较新版本加载pdf所需的时间激增,几乎翻了一番(旧版本为100ms,较新版本为200ms(。现在,我们运行的应用程序对延迟非常敏感。
我试图寻找延迟的增加,但没有运气。只是想得到社区的帮助,以了解是否有任何可能的方法可以解决此问题。唯一涉及的代码行是 -
PDDocument pdfDoc = PDDocument.load(new File(pdfFilePath));
我已经尝试过的是——
- 使用
memoryUsageSettings
并将其设置为无限制,使用临时文件以及主内存和临时文件的组合。 - 比较包括最新版本在内的许多2.x版本的统计数据,似乎都高于旧版本。
提前感谢!!
有一些初始化是在打开第一个文档时完成的(字体、色彩空间、一些类加载(,另请参阅 PDFBOX-3988 中的讨论。使用此代码(取自 PDFDebugger 源代码(,以便在首次加载之前完成它们。
// trigger premature initializations for more accurate rendering benchmarks
// See discussion in PDFBOX-3988
if (PDType1Font.COURIER.isStandard14())
{
// Yes this is always true
PDDeviceCMYK.INSTANCE.toRGB(new float[] { 0, 0, 0, 0} );
PDDeviceRGB.INSTANCE.toRGB(new float[] { 0, 0, 0 } );
IIORegistry.getDefaultInstance();
FilterFactory.INSTANCE.getFilter(COSName.FLATE_DECODE);
}