【问题标题】:Transformation Performance XML>XSL>XML vs XML>JAXB>XML转换性能 XML>XSL>XML 与 XML>JAXB>XML
【发布时间】:2012-01-23 08:56:05
【问题描述】:

我有一个案例,输入为 xml,输出为不同的 xml: 我可以在使用 XSL 和通过 JAXB 解组编组之间进行选择。 性能方面,有什么真正的区别吗?

【问题讨论】:

  • 一个关键的决定是您是否能够将您的 XSL 样式表编译和缓存为 Template。另一个问题是您是使用 XSLT 解释器(例如 Xalan)还是编译器(例如 XSLTC)。如果您每次都必须解析您的 XSL 样式表,则需要更多的时间。如果您使用 XSLT 编译器并且能够缓存结果,我会选择 XSLT...但我没有任何指标。

标签: java xml xslt jaxb


【解决方案1】:

首先,程序员的性能通常比机器性能重要得多。一个好的快速服务器的成本低于雇用一个程序员一天的成本。所以你问的问题对吗?

其次,如果转换很简单,那么在这两种情况下,成本都将由解析和序列化成本主导,并且没有理由在这两种情况下会有所不同。如果转换更复杂,那么它的性能在实践中取决于编写代码的人的技能,所以它又回到了编程问题。

我想说,使用 JAXB 和使用 XSLT 之间的真正区别在于 XSLT 解决方案的代码行数可能更少,并且对架构更改不太敏感。

【讨论】:

  • 好吧,所以对于同一个程序员来说,两者之间并没有太大区别,对吧?
  • @redben:如果只有一个程序员(而且他不知道或不喜欢 XSLT),您的问题将失去任何意义。 XSLT 是一种专门为 XML 转换而设计的语言,因此与使用其他语言相比,将其用于此任务具有一定的优势。这意味着所有其他条件都相同选择 XSLT 来完成任务是合理的。至于性能,已经表明它更多地取决于所使用的算法,而不是编程语言的选择——请阅读 Jon Bentley。并且引用 Donald Knut 的话,“过早的优化是万恶之源
猜你喜欢
  • 2015-12-18
  • 2016-02-12
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多