Как стать автором
Обновить

Парсинг XML в Java. DOM vs. SAX

Время на прочтение 1 мин
Количество просмотров 5K
Наконец дошли руки написать эту заметку.
В прошлой статье я писал о создании простейшего xml парсера на по технологии SAX.
По просьбам трудящихся сделал следующий выпуск из этой серии. Сравнение производительности SAX и DOM.

Итак, напомню.
У нас был xml файл, представляющий собой структуру данных, описывающую доктора.
Вот она:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<doc>
<id>3</id>
<fam>Сидоров</fam>
<name>Семен</name>
<otc>Семенович</otc>
<dateb>12-05-1976</dateb>
<datep>13-04-2005</datep>
<datev>02-03-2004</datev>
<datebegin>18-06-2009</datebegin>
<dateend>22-01-2022</dateend>
<vdolid>1</vdolid>
<specid>1</specid>
<klavid>1</klavid>
<stav>1.0</stav>
<progid>1</progid>
</doc>


* This source code was highlighted with Source Code Highlighter.


Все это чудо весит 411 байт.
Тест я решил сделать простенький. Парсил этот файл в цикле N-раз.
Давайте посмотрим на график.
image
Замечание: по вертикали имеем время в миллисекундах, по горизонтали метки с объемом информации (формат N*411, где N-количество раз прогона данного xml файла).

Получаем любопытную зависимость. Чем больше объем переработанной информации, тем дольше начинает работать DOM. На этом фоне SAX выглядит очень выйгрышно, если вам нужна скорость при больших объемах.

В любом случае не хочу делать никаких выводов, дабы не разводить холивары. Скажу лишь только, что в выборе способа нужно пользоваться здравым смыслом и поставленными целями.
Теги:
Хабы:
+2
Комментарии 9
Комментарии Комментарии 9

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн