【问题标题】:What XSLT processor is better to use for small parallel transformations什么 XSLT 处理器更适合用于小型并行转换
【发布时间】:2013-02-14 15:22:56
【问题描述】:

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

附言语言 - Java,转换最终结果类型 - 字符串

提前致谢

【问题讨论】:

  • 我不知道具体的 XSLT 处理器是关键决定。更重要的是确保用于执行转换的代码是健全的,并且您设置测试工具来评估吞吐量、内存消耗等。然后您可以评估 Xerces、Saxon 等,看看哪个执行得“更好”满足您的需求。话虽如此,Saxon 通常是“更好”的处理器。

标签: performance xslt


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您的解释
猜你喜欢
  • 2011-01-28
  • 2020-05-11
  • 2020-02-11
  • 2020-06-27
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-08
相关资源
最近更新 更多