【问题标题】:which is the most efficient XML Parser for C++?哪个是 C++ 最有效的 XML 解析器?
【发布时间】:2010-11-27 00:57:23
【问题描述】:

我需要编写一个从任何 xml 源获取元素名称值(时间序列数据)对的应用程序,无论是文件、Web 服务器还是任何其他服务器。应用程序将使用 XML 并取出感兴趣的值,它必须非常快(比如说 50000 个事件/秒或更多)而且 XML 文档的大小会很大并且这些文档的频率也可能很高(对于例如 2500 个文件/分钟 - 超过 500MB 的 XML 数据/文件)。

我只是想看看你有经验的人认为我应该如何处理这个问题。我是一个刚开始的新手,尽管我可以做任何你建议我的解决方案,无论多么困难/容易。

非常感谢。

【问题讨论】:

标签: c++ xml performance xml-parsing time-series


【解决方案1】:

我在我们的项目中使用libxml2。它同时支持 SAX 和 DOM。 正如 Warren Young 所说,您应该使用 SAX。你可以试试Expat。

【讨论】:

    【解决方案2】:

    我是Xerces 的粉丝,我认为您将不得不试用它们,看看哪种方式对您的应用程序具有最佳性能。就像 Warren 说的,你会想要使用 SAX 处理。实际上,如果您真的需要性能,您应该使用专门的 XML 设备来进行处理。

    【讨论】:

      【解决方案3】:

      如果您使用 SAX 解析,您的瓶颈是所涉及的 I/O,而不是 XML 字符串处理。鉴于您的 500 MB 数字,我会说您必须进行 SAX 解析而不是 DOM 解析。所以,任何带有 SAX 类型接口的东西都应该没问题。

      【讨论】:

      • Poco 的 XML 库有一个不错的 SAX 解析器。
      猜你喜欢
      • 2011-01-28
      • 2010-11-06
      • 2010-10-11
      • 2013-07-13
      • 2012-03-18
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多