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