生成大量小pdf文件

Generating a large number of small pdf files

目前我需要生成大量的小pdf文件(大约18000个pdf文件)

每个大约需要 1.x - 2 秒生成,简单点,假设它需要 2 秒

所以,18000 * 2 秒 = 36000 秒 = 10 小时 时间太长

我生成pdf的方法是每次调用FOPjava可执行文件生成一个pdf文件,提供xml, xsl(转换成FOPxml格式) .

java 的工作方式是,每次我调用 FOP 时,它都会创建一个 java VM 进程 (java) 到 运行 它。 我在想这是否会浪费很多时间,因为创建和删除 java 虚拟机进程 18,000 次以生成 18,000 个 pdf 文件。

我不熟悉 Java VM 进程,但猜测资源可以由 Java VM 重新使用和管理,以便重新创建 java VM 进程很多时间不是很大的开销吗?

如果重新创建 Java VM 进程是一个很大的开销,编写另一个 Java 程序来直接调用 FOP API 函数(而不是调用 FOP 可执行文件)循环还有路要走吗?

非常感谢任何建议。

您可以将执行 FOP 转换的调用构建到任何 Java 程序中,并且 运行 通过 XML/XSL/PDF 的长列表将减少每个 PDF 的 VM 启动,另外,由于第二次和后续运行的 JIT 编译,它会加快速度。一些示例代码在 Apache FOP website

嵌入式方法的另一种可能性是将您的 FOP 转换服务器构建为 RMI server,这样您的 FOP 服务就可以被多次调用,并且客户端应用程序具有所有输入数据的逻辑,服务器负责PDF生成。