2010-09-15 5 views
6

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

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

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

ответ

9

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

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

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

+0

Этот тест тестирует анализатор * и * DOM. –

Смежные вопросы