【发布时间】:2012-08-02 08:25:40
【问题描述】:
我正在寻找最新的、内存效率高的高性能 java XML 解析 API。 我需要解析 3 MB 到 5 MB 的 XML 文件。
我对此进行了谷歌搜索,了解到 Sun Java Streaming XML Parser (SJSXP) 和 Woodstox 比 DOM 和 SAX 快得多。两者都使用 StAX API。 *这些技术不支持架构验证。
Aalto XML 处理器也实现了 StAX API。
我还没有找到关于这些技术性能的具体发现。
哪一个在内存效率、高性能和易用性方面最好?
【问题讨论】:
-
如果您无法为它们找到任何有用的性能数据,您始终可以自己测试它们,看看哪一个最适合您的特定情况。
-
性能可能取决于您的具体情况。当性能至关重要时,我编写了专为确切用例设计的解析器,这将性能提高了 10 倍(但您必须建立许多影响健壮性和灵活性的假设)
-
我正在寻找上述技术的行业标准基准数据。
-
@Santosh 没有基准测试主要有两个原因:(a) 在过去 3 年左右的时间里,Java/XML 解析几乎没有任何进展,以及 (b) XML 正在丢失它对数据交换的重要性(相对于文本标记),因此很少有开发人员真正关心。
-
StaxMan(尽管 havig 编写了一些出色的 XML 解析器)关于 (b) 是完全错误的。金融服务行业正在以 FpML 等格式交换数十亿条消息,并且不会很快改变;他们的表现是绝对关键的。不同的是,这些人知道增加 10% 的硬件能力比寻找快 10% 的解析器要便宜得多。此外,XML 解析通常只占整个消息处理路径长度的 5%。
标签: java xml xml-parsing stax woodstox