6

我正在尝试在Go中从头开始创建一个 XMPP 库(以及后来的服务器)(尽管语言本身无关紧要),作为了解 XMPP 协议和服务器软件开发的一般方法的一种手段。

众所周知,XMPP 是基于 XML 的消息传递协议,它依赖于大量短而频繁的 XML 流。我认为对于此类应用程序,基于事件的 XML 解析器应该更好,因为我不需要 DOM 和所有这些(如果我错了,请纠正我)。请记住,这个库是为服务器设计的,所以可能有很多实例同时运行;

对于该用例,libxml2 还是 expat,两者中哪一个具有更好的性能和内存使用率?

4

1 回答 1

11

有一个完整的项目致力于回答 XML 性能问题,称为XML Benchmark

在我看来,简短的回答是使用 libxml2,但除了纯粹的性能之外,我还有其他考虑因素,例如平台可用性。也就是说,根据最新数据,它通常比 expat 快,尽管它在伟大的计划中相当接近。

是的,您想使用 SAX 解析器,而不是 DOM 解析器。

于 2010-09-15T04:57:13.753 回答