2010-09-15 8 views
6

Ich versuche, eine XMPP-Bibliothek (und später einen Server) von Grund auf neu in Go (obwohl die Sprache selbst ist irrelevant) als Mittel zu lernen, was ich kann über das XMPP-Protokoll und Server-Software-Entwicklung im Allgemeinen.libxml2 vs Expat für einen XMPP-Server

Wie viele von Ihnen wissen, ist XMPP ein auf XML basierendes Messaging-Protokoll, das auf einer enormen Anzahl kurzer, aber häufiger XML-Streams beruht. Ich denke, dass für solche Anwendungen ein ereignisbasierter XML-Parser besser sein sollte, weil ich DOM und all das nicht brauche (korrigiere mich, wenn ich falsch liege). Bitte beachten Sie, dass diese Bibliothek für Server gedacht ist, so dass viele Instanzen gleichzeitig ausgeführt werden können.

Welcher der beiden hat eine bessere Leistung und Speicherauslastung für diesen Anwendungsfall, libxml2 oder expat?

Antwort

9

Es gibt ein ganzes Projekt, das der Beantwortung der Frage der XML-Leistung XML Benchmark gewidmet ist.

Die kurze Antwort, meiner Meinung nach, ist libxml2 zu verwenden, aber ich habe andere Überlegungen über die reine Leistung hinaus, wie Plattformverfügbarkeit. Das heißt, es ist in der Regel schneller als Expat nach den neuesten Zahlen, obwohl es in dem großen Schema der Dinge ziemlich nahe ist.

Und ja, Sie möchten den SAX-Parser verwenden, nicht den DOM-Parser.

+0

Dieser Benchmark testet den Parser * und * das DOM. –