2010-09-15 14 views
6

Sto provando a creare una libreria XMPP (e più tardi un server) da zero in Go (anche se il linguaggio stesso è irrilevante) come mezzo per apprendere ciò che posso sul protocollo XMPP e sviluppo di software server in generale.libxml2 vs expat per un server XMPP

Come molti di voi sanno, XMPP è un protocollo di messaggistica basato su XML che dipende da un'enorme quantità di stream XML brevi ma frequenti. Sto pensando che per tali applicazioni un parser XML basato su eventi dovrebbe essere migliore perché non avrò bisogno di DOM e di tutto ciò (correggimi se sbaglio). Si prega di tenere presente che questa libreria è pensata per i server, quindi potrebbero esserci più istanze in esecuzione contemporaneamente;

Quale dei due ha prestazioni e memoria migliori per tale caso d'uso, libxml2 o expat?

risposta

9

Esiste un intero progetto dedicato alla risposta alla domanda di prestazioni XML denominata XML Benchmark.

La risposta breve, secondo me, è di usare libxml2, ma ho altre considerazioni che vanno al di là della pura prestazione, come la disponibilità della piattaforma. Detto questo, è generalmente più veloce di espatriare secondo gli ultimi numeri, anche se è abbastanza vicino nel grande schema delle cose.

E sì, si desidera utilizzare il parser SAX, non il parser DOM.

+0

Tale benchmark sta testando il parser * e * il DOM. –