什么XSLT处理器更适合用于小型并行转换

时间:2013-02-14 15:22:57

标签: performance xslt

我需要在一个循环中执行并行XML转换的批量(abot 100-200)。平均XML大小约为5Kb。使用的XSL与要解析的XML的关系约为0.25,这意味着某些XML共享相同的XSL。这里的XSL可以缓存,但不幸的是XSL没有存储在File中,而是在应用程序中动态生成。 那么XSLT处理器更适合我的情况呢?

P.S。 language - Java,转换最终结果类型 - 字符串

提前致谢

1 个答案:

答案 0 :(得分:1)

我不确定我是否已完全理解这个问题,但我会尝试。

首先,似乎有两个单独的问题,我认为这些问题是完全正交的。首先是如何缓存样式表的问题:如果您不止一次地运行转换,那么编译一次并重复使用它是个好主意。一般来说这不是问题,除非没有足够的内存来缓存所有样式表,在这种情况下你需要某种LRU策略。

第二个问题是您选择的XSLT处理器。我认为无论您选择哪种处理器,都可以使用相同的缓存架构,因此这个问题不会限制您的选择。在Java世界中,主要的免费/开源处理器是Xalan(包含Apache的版本,嵌入在JDK中)和Saxon-HE;因为Saxon-HE支持XSLT 2.0并且通常速度更快,所以竞争很少。在付费处理器中,主要的竞争者是IBM的Websphere处理器和Saxon-EE;他们应该轻松处理这个工作量,但除非你在IBM中间件上进行大量投资,否则你不太可能考虑IBM产品。

(我不会试图隐瞒我是撒克逊产品的开发者......)