Мне нужно знать, как производительность различных инструментов XML (анализаторы, валидаторы, оценщики выражений XPath и т. Д.) Зависит от размера и сложности входного документа. Существуют ли ресурсы, в которых описывается, как время процессора и использование памяти зависят от ... ну, что? Размер документа в байтах? Количество узлов? И являются ли отношения линейными, полиномиальными или хуже?
Обновление
В статье в журнале IEEE Computer Magazine, том 41, номер 9, сентябрь 2008 года авторы рассматривают четыре популярные модели синтаксического анализа XML (DOM, SAX, StAX и VTD). Они запускают несколько базовых тестов производительности, которые показывают, что пропускная способность DOM-парсера будет уменьшена вдвое при увеличении размера входного файла с 1-15 КБ до 1-15 МБ или примерно в 1000 раз больше. Пропускная способность других моделей существенно не влияет.
К сожалению, они не провели более детальных исследований, таких как пропускная способность / использование памяти как функция количества узлов / размера.
Статья здесь .
Обновление
Мне не удалось найти какое-либо официальное решение этой проблемы. Что бы это ни стоило, я провел несколько экспериментов, измеряя количество узлов в документе XML как функцию размера документа в байтах. Я работаю над системой управления складом, а XML-документы являются типичными складскими документами, например, предварительное уведомление о доставке и т. д.
На приведенном ниже графике показана взаимосвязь между размером в байтах и количеством узлов (которая должна быть пропорциональна объему памяти документа в модели DOM). Разные цвета соответствуют разным видам документов. Шкала лог / лог. Черная линия лучше всего подходит для синих точек. Интересно отметить, что для всех видов документов соотношение между размером байта и размером узла является линейным, но коэффициент пропорциональности может быть очень разным.