Pull to refresh

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

Reading time 1 min
Views 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 выглядит очень выйгрышно, если вам нужна скорость при больших объемах.

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

Articles