我正试图在Go中从头开始创建一个XMPP库(以及后来的服务器)(虽然语言本身是不相关的),作为了解我对XMPP协议和服务器软件开发的一种方法总的来说。
正如你们许多人所知,XMPP是基于XML的消息传递协议,它依赖于大量短而频繁的XML流。我认为对于这样的应用程序,基于事件的XML解析器应该更好,因为我不需要DOM和所有这些(如果我错了,请纠正我)。请记住,此库适用于服务器,因此可能会同时运行多个实例;
对于该用例libxml2或expat,两者中哪一个具有更好的性能和内存使用?
答案 0 :(得分:9)
有一整个项目致力于回答称为XML Benchmark的XML性能问题。
在我看来,简短的回答是使用libxml2,但除了纯粹的性能之外我还有其他考虑因素,例如平台可用性。也就是说,根据最新的数据,它通常比外籍人士更快,尽管它在伟大的计划中相当接近。
是的,你想使用SAX解析器,而不是DOM解析器。