我们的java应用程序使用xsl表将xml转换为“合适的”xml。问题是结果xml大约有20000多行,用java进行转换需要时间(在生产机器上大约30秒)。
这对于业务来说是不可接受的,我正在寻找优化xslt的方法。
目前我使用xslt 2.0分组:
<xsl:for-each-group select="reportContent/transaction" group-by="transactionId">
我们的一位开发人员认为,这是性能缓慢的原因(事实确实如此)。如果我删除分组,我会得到2倍的提升),并建议使用muenchian方法进行分组。
在我开始重写很多代码之前,我想知道是否有其他人也经历过类似的事情,将分组重写为muenchian方法可以提高性能。
1条答案
按热度按时间2skhul331#
没有内在的理由说明门钦族的分组应该比其他民族更快
<xsl:for-each-group>
(事实上,总的来说,人们有理由认为它会慢一点)。但是对于性能,魔鬼总是在细节上,当然,除了在特定的xslt2.0实现的上下文中之外,就这样的性能比较提出问题是毫无意义的。对于这个任务,30秒听起来很慢,我肯定会怀疑改进是可能的。理想情况下,在开始任何实验性调优之前,您应该深入了解时间的去向:例如,saxon之类的工具
-TP:profile.html
可能是无价的。