2013-01-23 30 views
-1

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

+2

您应该了解为什么您的XSL需要这么长时间。 如果输入文件“很大”,则可能需要很长时间才能使用任何语言。 XSL样式表可能写得不好,或者可能会导致处理效率低下。也许不同的XSLT引擎会表现更好。 如果您在不了解现有系统低效率的情况下进行大量重写,则可能会导致速度不够快。 –

+0

发布一些示例输入和足够的样式表,以便我们可以看到它使用的整体方法。 –

+1

总的来说,性能问题的唯一好方法是:度量。如果不仔细衡量以找出性能瓶颈,所有关于什么导致程序变慢的猜测都可能是毫无价值的,或者说比毫无价值(因为它们会诱使你浪费时间去处理不相关的变化)。一般来说,尝试使用多个XSLT处理器进行转换,测量它以查找热点,尝试重新构建热点并咨询供应商,而不是将“庞大”程序转换为其他语言会更简单。 –

回答

2

您可以用另一种语言重写它,但可能有更简单的选项,它取决于XSLT 1代码的效率。如果它大量使用//,通过重写它不要使用//并改为使用键或其他构造来获得数量级的速度改进并不是不寻常的。当然,切换到更新的更高度优化的XSLT引擎也不会受到影响。 (您的问题标记为xslt 1,但XSLT2引擎可以在没有或几乎没有变化的情况下运行)

+0

我遵循了你的建议,并且我们看到通过重构几个//选择而显着的改进。谢谢。 – Natkeeran

相关问题