较新的 PDFBox 版本加载 PDF 速度较慢

Newer PDFBox versions loads PDF slowly

所以我正在努力将使用 PDFBox 1.8 的遗留框架迁移到 PDFBox 2.x 但是,我观察到使用新版本加载 pdf 所需的时间激增,几乎翻了一番(旧版本为 100 毫秒,新版本为 200 毫秒)。现在我们 运行 的应用程序对延迟非常敏感。

我尝试寻找延迟增加的问题,但没有成功。只是想得到社区的帮助,看看是否有任何可能的方法来解决这个问题。唯一涉及的代码行是 -

PDDocument pdfDoc = PDDocument.load(new File(pdfFilePath));

我已经尝试过的是-

  1. 使用 memoryUsageSettings 并将其设置为无限制,使用临时文件,以及主内存和临时文件的组合。
  2. 比较 2.x 包括最新版本在内的多个版本的统计数据,似乎都比旧版本更高。

提前致谢!!

打开第一个文档时会进行初始化(字体、颜色空间、一些 class 加载),另请参阅 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);
}