【发布时间】:2017-01-03 14:36:14
【问题描述】:
我们的 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 方法 可以提高性能。
【问题讨论】:
-
为什么用 Muenchian 分组替换
<xsl:for-each-group select="reportContent/transaction" group-by="transactionId">需要“重写很多代码”?如果您认为该方法更快,则实施它并对其进行分析以比较结果。 Muenchian 分组是一种 XSLT 1.0 技术,我怀疑 2017 年的 XSLT 2.0 处理器无法以相当的性能实现for-each-group。至于提高性能,您可以查看提供编译的商业包。