哪个是最有效的C ++ XML解析器?

时间:2009-09-10 01:18:31

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

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

我只是想看看你有经验的人认为我应该接近这个。我是一个刚刚开始的新手,虽然我可以做任何你建议我的解决方案,无论多么艰难/轻松。

非常感谢。

3 个答案:

答案 0 :(得分:4)

如果使用SAX解析,则您的瓶颈是涉及的I / O,而不是XML字符串处理。考虑到你的500 MB的数字,我会说你已经进行SAX解析而不是DOM解析。因此,任何具有SAX类型接口的东西都应该没问题。

答案 1 :(得分:2)

我是Xerces的粉丝,我想你将不得不尝试一下,看看你的应用程序的性能最佳。像沃伦一样,你会想要使用SAX处理。实际上,如果您确实需要性能,则应使用专用的XML设备进行处理。

答案 2 :(得分:0)

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