Java 将FOP xml嵌入PDF:为什么与CLI相比如此缓慢?

Java 将FOP xml嵌入PDF:为什么与CLI相比如此缓慢?,java,performance,pdf,clojure,apache-fop,Java,Performance,Pdf,Clojure,Apache Fop,我的程序使用web服务为数据创建一个xml文件,然后将该文件与我的xsl文件一起传递给FOP以生成PDF。在命令行上,它如下所示: $ fop -xml ./test.xml -xsl ./template.xsl -pdf ./test.pdf Apr 22, 2016 1:30:15 PM org.apache.fop.events.LoggingEventListener processEvent INFO: Rendered page #1. Apr 22, 2016 1:30:15 P

我的程序使用web服务为数据创建一个xml文件,然后将该文件与我的xsl文件一起传递给FOP以生成PDF。在命令行上,它如下所示:

$ fop -xml ./test.xml -xsl ./template.xsl -pdf ./test.pdf
Apr 22, 2016 1:30:15 PM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #1.
Apr 22, 2016 1:30:15 PM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #2.
Apr 22, 2016 1:30:15 PM org.apache.fop.events.LoggingEventListener processEvent
INFO: Rendered page #3.
所有这些都发生在几秒钟之内。然而,当我为我的嵌入式(Clojure)系统使用相同的输入和输出文件时,遵循源代码发行版中的示例,当我从REPL运行PDF时,渲染完全相同的PDF大约需要整整一分钟。如何使我的嵌入式版本与命令行版本同步

(defn生成离开pdf更快[{:keys[xml文件xslt文件pdf文件]
没有比这更快的了。
:或{xslt文件(->“template.xsl”
io/资源
io/文件)
pdf文件(io/file“temp/fopout.pdf”)}]
(让[fop工厂(->)(.toURI(io/file“))fop工厂/newInstance)
fo用户代理(->fop factory.newFousAgent)
transformer(->(TransformerFactory/newInstance)(.newTransformer(StreamSource.xslt文件)))
输出(io/输出流pdf文件)]
(试试看
(让[res(->(.newFop fop factory MimeConstants/MIME\u PDF for user agent out)
.getDefaultHandler
(结果)
src(->xml文件流源。)]
(.setParameter transformer“versionParam”“2.0”)
(.transform transformer src res);;这需要整整一分钟
(pdf文件)
(最后(.close out(()())));;我已经试过了。接近而不是打开包装,希望有所改善,但没有运气。

您找到原因了吗?我们在命令行版本和Java API中遇到了同样的问题;重新启动系统后,问题就消失了。我猜JVM实例或者它的一些资源已经膨胀了。谢谢你的快速回复。不幸的是,在我们的案例中,我们可以排除这种副作用。搜索继续…;)