我一直试图找到xslt 1 vs xslt 2的基准测试,以获得速度性能。 2会引入任何性能优势,还是只具有新功能(如果使用正确,可能会提高性能)。
答案 0 :(得分:8)
你的问题没有意义。 XSLT 1和2是规范,而不是实现。他们没有表现。实现具有性能。 XSLT 2.0具有新功能,因此您无法将其性能与XSLT 1实现中的任何内容进行比较。它也有一些澄清,只能使实施者受益;除此之外,它包含XSLT 1包含的所有内容,并且没有理由为什么实现应该在这部分的性能上有所不同。
答案 1 :(得分:2)
实际上,在所有其他条件相同的情况下,存在这样的风险:如果您转向XSLT 2.0并且不更改其他任何内容,性能可能会变得更糟。例如,($ a = $ b)的语义在2.0中要复杂得多,因为要考虑更多可能的数据类型,如果不利用声明数据类型的能力,系统将不得不在运行时解决该怎么做。然而,这可以通过XSLT 2.0处理器可能具有更复杂和成熟的优化器这一事实得到补偿,仅仅因为没有它,它无法真正做到有效的工作。所以我看到将1.0样式表从Saxon 6.5(1.0处理器)移动到Saxon 9.x(2.0处理器)的情况下,速度提高了100倍。但正如EJP指出的那样,这就是实施的全部内容;这与语言无关。