2013-06-26 4 views
0

С точки зрения «разбора скорости», какое влияние (если есть) имеет количество атрибутов и глубину документа XML при разборе парсинга? Лучше ли использовать больше элементов или как можно больше атрибутов? «Глубокую» структуру XML трудно читать?Сложность структуры XML влияет на скорость разбора?

Я знаю, что если я буду использовать дополнительные атрибуты, XML будет не так тяжел и что адаптация XML для синтаксического анализа не является правильным способом для создания XML-файла

благодаря

+0

Какой парсер вы используете, SAX Parser DOM Parser. –

+0

@AnkitZalani: SAX, StAX и DOM, так как он не должен быть очень большим. XML – ivanz

ответ

2

Я думаю, это зависит от того, выполняете ли вы проверку или нет. Если вы проверяете большую и сложную схему, тогда пропорционально больше времени, скорее всего, будет потрачено на выполнение проверки ... чем на простую схему.

Для неаудирующих парсеров сложность схемы, вероятно, не имеет большого значения. В производительности будет преобладать размер XML.

И, конечно, производительность также зависит от используемого вами парсера. Парсер DOM, как правило, будет медленнее, потому что перед началом работы вы должны создать полное представление в памяти. С помощью синтаксического анализатора SAX вы можете просто выбрать элементы, которые вам нужны.


Обратите внимание, что мой ответ основан на интуиции. Я не знаю никого, кто пытался до измерить последствиями сложности XML в производительности на научной основе. Для начала сложно описать сложность XML. И люди, как правило, больше заинтересованы в сравнении парсеров для заданного образца XML, чем в том, чтобы выискивать, является ли сложность ввода фактором.

+0

без схемы не будет никакой разницы в скорости? – ivanz

+0

@sevdah - моя интуиция заключается в том, что это не имеет большого значения. –

+0

в пользу использования большего количества атрибутов или более элементов? – ivanz

0

Если вы используете Sax анализатор неважно, является ли XML большой или нет, поскольку он является синтаксическим анализатором сверху вниз и не содержит полный XML в памяти, но для DOM это имеет значение, поскольку он содержит полный XML в памяти. Вы можете получить некоторое представление о сравнении парсеров XML в своем блоге here

+0

спасибо, но это был не мой вопрос. Мне любопытно узнать о различиях в атрибутах чтения и элементах и ​​глубине дерева, не обязательно больших xml-файлах, а сложных xml-файлах. – ivanz

+0

@sevdah XML становится больше при увеличении количества атрибутов –

+0

@SanjayaLiyanage - Это не главное. Вопрос не в количестве информации. Речь идет о том, имеет ли значение какое-либо значение для производительности, если вы представляете * ту же информацию *, что и (а) атрибуты или дочерние элементы. –

2

Производительность - это свойство реализации. Различные парсеры разные. Не пытайтесь получить теоретические ответы о производительности, просто измерьте ее.

Лучше ли использовать больше элементов или как можно больше атрибутов?

Какое это имеет отношение к синтаксическому анализу? Мне очень сложно поверить, что любая разница в производительности оправдывает искажение вашего XML-дизайна. Напротив, использование искаженного XML-дизайна в убеждении, что оно улучшит скорость синтаксического анализа, почти наверняка закончится тем, что вы получите большие дополнительные затраты в приложениях, которые генерируют и потребляют XML.

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

  • Нет связанных вопросов^_^