Xml 我们应该在CDuce中重写XSL吗?

Xml 我们应该在CDuce中重写XSL吗?,xml,xslt,xml-parsing,xsd,xslt-1.0,Xml,Xslt,Xml Parsing,Xsd,Xslt 1.0,我们目前有一个巨大的XSLT转换,需要20-30分钟来处理。我们需要改进性能,我们正在考虑。CDuce看起来很有希望。做这件事的好方法是什么?我们必须在CDuce中重写整个xsl逻辑吗?您可以用另一种语言重写它,但可能有更简单的选择,这取决于XSLT 1代码的效率。如果它大量使用/,那么通过重写它以不使用/,而是使用键或其他构造来获得数量级的速度改进并不罕见。当然,切换到更新的、高度优化的XSLT引擎也不会有什么坏处。(您的问题被标记为xslt 1,但XSLT2引擎将能够运行它,而无需任何更改或

我们目前有一个巨大的XSLT转换,需要20-30分钟来处理。我们需要改进性能,我们正在考虑。CDuce看起来很有希望。做这件事的好方法是什么?我们必须在CDuce中重写整个xsl逻辑吗?

您可以用另一种语言重写它,但可能有更简单的选择,这取决于XSLT 1代码的效率。如果它大量使用
/
,那么通过重写它以不使用
/
,而是使用键或其他构造来获得数量级的速度改进并不罕见。当然,切换到更新的、高度优化的XSLT引擎也不会有什么坏处。(您的问题被标记为xslt 1,但XSLT2引擎将能够运行它,而无需任何更改或很少更改)

您可能应该理解XSL花费如此长时间的原因。如果输入文件是“巨大的”,在任何语言中都可能需要那么长的时间。XSL样式表可能写得不好,或者其结构可能导致处理效率低下。也许一个不同的XSLT引擎会表现得更好。如果您在不了解现有系统的低效性的情况下进行了大量重写,那么最终可能会得到更快的结果。发布一些示例输入和足够多的样式表,以便我们可以看到它使用的总体方法。一般来说,解决性能问题的唯一好方法是:度量。如果没有仔细的测量来发现性能瓶颈,所有关于导致程序运行缓慢的原因的猜测都可能毫无价值,甚至更糟(因为它们会引诱您将时间浪费在不相关的更改上)。一般来说,尝试使用多个XSLT处理器进行转换、测量转换以找到热点、尝试重新格式化热点并咨询供应商比将“庞大”的程序翻译成另一种语言更简单。100%同意上述评论。如果代码的实验性更改有助于您更好地理解性能特征,那么您可以证明花费少量时间对代码进行实验性更改是合理的,但是,如果您不了解某个问题,则需要进行重大重写来修复该问题,这很可能是一种巨大的工作浪费。嗨,Jim,输入文件是一个9MB word xml文件,其中包含大量样式表信息。谢谢你们的评论,我确实同意你们所有人的意见。我听从了你们的建议,通过重构一些//选择,我们看到了显著的改进。非常感谢。