2010-09-15 7 views
6

Estoy tratando de crear una biblioteca XMPP (y más tarde un servidor) desde cero en Go (aunque el lenguaje en sí mismo es irrelevante) como un medio para aprender lo que pueda sobre el protocolo XMPP y desarrollo de software de servidor en general.libxml2 vs expat para un servidor XMPP

Como muchos de ustedes saben, XMPP es un protocolo de mensajería basado en XML que depende de una enorme cantidad de flujos XML cortos pero frecuentes. Estoy pensando que para esas aplicaciones un analizador XML basado en eventos debería ser mejor porque no necesitaré DOM y todo eso (corríjanme si me equivoco). Tenga en cuenta que esta biblioteca está destinada a servidores, por lo que puede haber muchas instancias ejecutándose a la vez;

¿Cuál de los dos tiene un mejor rendimiento y uso de memoria para ese caso de uso, libxml2 o expat?

Respuesta

9

Hay todo un proyecto dedicado a responder la pregunta sobre el rendimiento XML llamado XML Benchmark.

La respuesta corta, en mi opinión, es usar libxml2, pero tengo otras consideraciones más allá del rendimiento puro, como la disponibilidad de la plataforma. Dicho esto, en general es más rápido que expatriados de acuerdo con las últimas cifras, aunque está bastante cerca en el gran esquema de las cosas.

Y sí, quiere usar el analizador SAX, no el analizador DOM.

+0

Ese punto de referencia está probando el analizador * y * el DOM. –

Cuestiones relacionadas