XSLT分组:" Muenchian方法" vs for-each-group

时间:2017-01-03 14:36:14

标签: java xml xslt

我们的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 个答案:

答案 0 :(得分:3)

为什么Muenchian分组应该比<xsl:for-each-group>更快没有内在的原因(实际上有理由说为什么人们会认为它有点慢)。但是在性能方面,魔鬼总是处于细节之中,当然,除了在特定的XSLT 2.0实现的上下文中,提出有关这种性能比较的问题毫无意义。

30秒这个任务听起来很慢,我当然会怀疑改进是可能的。理想情况下,您应该深入了解在开始任何实验性调整之前的时间:例如,像Saxon -TP:profile.html这样的工具可能非常宝贵。