2

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

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

非常感谢。

4

3 回答 3

4

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

于 2009-09-10T01:31:14.287 回答
2

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

于 2009-09-10T01:49:54.470 回答
0

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

于 2009-09-10T13:00:56.363 回答