libxml2 против экспата для сервера XMPP - PullRequest
6 голосов
/ 15 сентября 2010

Я пытаюсь создать библиотеку XMPP (а затем и сервер) с нуля в Go (хотя сам язык не имеет значения) как средство узнать, что я могу о протоколе и сервере XMPP разработка программного обеспечения в целом.

Как многие из вас знают, XMPP - это протокол обмена сообщениями, основанный на XML, который зависит от огромного количества коротких, но частых потоков XML. Я думаю, что для таких приложений анализатор XML на основе событий должен быть лучше, потому что мне не понадобится DOM и все такое (поправьте меня, если я ошибаюсь). Помните, что эта библиотека предназначена для серверов, поэтому может быть запущено много экземпляров одновременно;

Какой из двух имеет лучшую производительность и использование памяти для этого варианта использования, libxml2 или expat?

1 Ответ

9 голосов
/ 15 сентября 2010

Существует целый проект, посвященный ответу на вопрос производительности XML, который называется XML Benchmark .

Короткий ответ, на мой взгляд, заключается в использовании libxml2, но у меня есть другие соображенияза пределами чистой производительности, такой как доступность платформы.Тем не менее, как правило, он быстрее, чем expat, согласно последним числам, хотя он довольно близок по большой схеме вещей.

И да, вы хотите использовать парсер SAX, а не парсер DOM.

...