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