XPath по сравнению с Десериализацией: какой лучше в производительности для операций чтения

Спасибо всем. Наконец, я обнаружил, в чем проблема с моим кодом. Таймер clock_t вычисляет время потребления ЦП вместо времени стены.

9
задан usman shaheen 10 November 2008 в 11:59
поделиться

2 ответа

Я десериализовал бы его.

При использовании xpath Вы десериализуете (или "загрузка") его к XmlDocument или чему-то так или иначе. Таким образом, оба решения используют время, десериализовывая. После того, как это сделано, xpath будет медленнее из-за времени, проведенного, анализируя ту строку, разрешая имена, выполняя функции и так далее. Кроме того, если Вы идете с xpath, Вы не получаете безопасности типов. Ваш компилятор не может проверить xpath синтаксис на Вас.

При использовании XmlSerializer и классов Вы получаете статический контроль типов. Действительно быстрый доступ к Вам данные, и если Вы хотите запросить их с xpath, существует все еще способы сделать это.

Кроме того, я хотел бы сказать, что Ваш код, вероятно, будет легче понять с классами.

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

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

8
ответ дан 4 December 2019 в 14:32
поделиться

Существует третья опция того, чтобы придерживаться XML, но запрос с любым API XML, который Вы используете - например, LINQ к XML, делает запросы относительно простыми в коде.

Вы уже проанализировали текст в XML-документ?

Вы убеждены, что это - на самом деле значительное узкое место производительности в Вашем коде? (например, если Вы затем говорите с базой данных, затем не волнуйтесь об этом для запуска с - просто заставляют это работать самым простым способом сначала),

Запросы всегда являются тем же, или действительно ли они являются динамичными в некотором роде?

У Вас есть тестовая буровая установка с реалистическими сообщениями и запросами? В противном случае Вам нужен тот для оценки любых ответов, данных здесь с данными. Если бы Вы делаете, я ожидал бы, что это будет довольно легко попробовать его сами :)

4
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: