Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XSLT分组:";“明钦方法”;每组的vs_Java_Xml_Xslt - Fatal编程技术网

Java XSLT分组:";“明钦方法”;每组的vs

Java XSLT分组:";“明钦方法”;每组的vs,java,xml,xslt,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"> 我们的一位开发人员认为这是性能低下的原因(事实确实如此。如果我删除分组

我们的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方法可以提高性能

没有内在的原因说明明钦族的分组速度应该比
快(事实上,总的来说,有理由认为它会慢一点)。但是对于性能来说,魔鬼总是在细节中,当然,除了在特定XSLT2.0实现的上下文中之外,询问关于这种性能比较的问题毫无意义


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

没有内在的原因说明Muenchian分组应该比
更快(事实上,总的来说,我们有理由认为它会稍微慢一点),但对于性能来说,魔鬼总是在细节上,当然,除了在特定的XSLT 2.0实现的上下文中之外,对这种性能比较提出问题是毫无意义的

对于这项任务来说,30秒听起来很慢,我肯定会怀疑改进是可能的。理想情况下,在开始任何实验性调优之前,您应该深入了解时间的走向:例如,Saxon的
-TP:profile.html
之类的工具可能非常宝贵。

为什么要用Muenchian groupi替换
ng要求您“重写大量代码”?如果您认为这种方法更快,那么就实施它并对其进行分析以比较结果。Muenchian分组是一种XSLT 1.0技术,我怀疑2017年的XSLT 2.0处理器不能以可比的性能为每个组
实施
。至于提高性能,您可以研究提供编译。为什么将
替换为Muenchian分组需要“重写大量代码”?如果您认为这种方法更快,那么就实施它并对其进行分析以比较结果。Muenchian分组是一种XSLT 1.0技术,我怀疑2017年的XSLT 2.0处理器不能以可比的性能为每个组
实施
。至于提高性能,您可以研究提供汇编