Я давно использую DOM, и поэтому производительность анализа DOM была довольно хорошей. Даже при работе с XML размером около 4-7 МБ анализ был быстрым. Проблема, с которой мы сталкиваемся при использовании DOM, - это объем памяти, который становится огромным, как только мы начинаем работать с большими XML-файлами.
В последнее время я пытался перейти на Stax (потоковые парсеры для XML), которые, как предполагается, должны быть парсерами второго поколения (читая о Stax, он сказал, что это самый быстрый парсер сейчас). Когда я попробовал парсер Stax для большого XML примерно на 4 МБ, объем памяти заметно сократился, но время, необходимое для анализа всего XML и создания из него java-объекта, увеличилось почти в 5 раз по сравнению с DOM.
Я использовал реализацию Stax в sjsxp.jar.
Я могу до некоторой степени логически вывести, что производительность может быть не очень хорошей из-за потоковой природы синтаксического анализатора, но сокращения в 5 раз (например, DOM занимает около 8 секунд для создания объекта для этого XML, тогда как анализ Stax занимал около 40 секунд в среднем) определенно не будет приемлемым.
Я что-то упускаю здесь полностью, так как не могу смириться с этими показателями производительности