Этот вопрос отчасти связан с Самым быстрым парсером XML для небольших простых документов. на Java, но с некоторыми особенностями.
Я работаю над приложением, которое должно анализировать множество (десятки миллионов) небольших (около 300 КБ) XML-документов. Текущая реализация использует xerces-j, и это занимает около 2,5 мс на XML-документ на машине с частотой 1,5 ГГц. Я бы хотел улучшить эту производительность. Я наткнулся на эту статью
http://www.xml.com/pub/a/2007/05/16/xml-parser-benchmarks-part-2.html
утверждая, что libxml2 может анализировать примерно на порядок быстрее, чем любые парсеры java. Не уверен, верю ли я этому, но это привлекло мое внимание. Кто-нибудь пробовал использовать libxml2 из jvm? Если да, то это быстрее, чем синтаксический анализ java-dom (xerces)? Я думаю, мне все еще понадобится моя структура java-dom, но я предполагаю, что копирование из c-структурированного dom в java-dom не должно не заставит себя долго ждать. У меня должен быть java-dom - sax мне в этом случае не поможет.
update: я только что написал тест для libxml2, и он не был быстрее, чем xerces ... при условии, что мои навыки кодирования чрезвычайно устарели.
update Я немного расширил вопрос здесь: почему синтаксический анализ sax быстрее, чем анализ dom? и как работает Stax? и я открыт для возможности отказаться от dom.
Спасибо