我发现了一篇帖子,请see the IBM formum post,其中说使用Apache Xalan实用程序创建预编译的java类(Translet)比使用XSLT更快地转换XML文件。
我一直是XSLT 2.0,但由于Xalan仅支持XSLT 1.0,因此无效。 Saxon processor支持XSLT 2.0,但没有实用程序来生成Translet。
有什么建议吗?
答案 0 :(得分:3)
编译为字节码translet的Xalan版本通常称为XSLTC。我们最近对XSLTC的Saxon-EE性能进行了一些性能测量,我们在2014年伦敦XML会议上报道了这些测量(我们的论文可在http://www.saxonica.com/papers/xmllondon-2014mhk.pdf获得),我们在https://github.com/Saxonica/XT-Speedo的测量结果是在Github上进行的。对于我们运行的测试集合,Saxon-EE领先一步:作为粗略的总结,XSLTC在大多数测试中跑得快一点,Saxon-EE在几次测试中跑得快得多,所以得到的结果将在很大程度上取决于您的工作量。但差异只有几个百分点,因此它不太可能真正影响您满足项目要求的能力。 XSLT 2.0相对于XSLT 1.0的生产力优势对于大多数项目来说比5%的性能差异更为重要。
答案 1 :(得分:1)
我认为Saxon 9.5的企业版提供了对字节代码的编译,请参阅功能矩阵http://www.saxonica.com/feature-matrix.html,其中说明了该功能:“适用于Java和.NET平台,通常可提高25%的性能。 ”
至于IBM,它还有一个XSLT 2.0实现作为Websphere的一部分提供,请参阅http://www-03.ibm.com/software/products/en/xmlfp/,但我不知道它是否提供了对Java类或Java字节代码的XSLT编译。