Спасибо всем. Наконец, я обнаружил, в чем проблема с моим кодом. Таймер clock_t
вычисляет время потребления ЦП вместо времени стены.
Я десериализовал бы его.
При использовании xpath Вы десериализуете (или "загрузка") его к XmlDocument или чему-то так или иначе. Таким образом, оба решения используют время, десериализовывая. После того, как это сделано, xpath будет медленнее из-за времени, проведенного, анализируя ту строку, разрешая имена, выполняя функции и так далее. Кроме того, если Вы идете с xpath, Вы не получаете безопасности типов. Ваш компилятор не может проверить xpath синтаксис на Вас.
При использовании XmlSerializer и классов Вы получаете статический контроль типов. Действительно быстрый доступ к Вам данные, и если Вы хотите запросить их с xpath, существует все еще способы сделать это.
Кроме того, я хотел бы сказать, что Ваш код, вероятно, будет легче понять с классами.
Единственный недостаток состоит в том, что xml должен соответствовать той же схеме все время, но это не могло бы быть настоящей проблемой в Вашем случае.
Я надеюсь, что Вы прощаете отсутствие статистики, я думаю, что доводы являются достаточно вескими без примеров. Если Вы хотите окончательный ответ, попробуйте обоих и сохраните секундомер готовым.
Существует третья опция того, чтобы придерживаться XML, но запрос с любым API XML, который Вы используете - например, LINQ к XML, делает запросы относительно простыми в коде.
Вы уже проанализировали текст в XML-документ?
Вы убеждены, что это - на самом деле значительное узкое место производительности в Вашем коде? (например, если Вы затем говорите с базой данных, затем не волнуйтесь об этом для запуска с - просто заставляют это работать самым простым способом сначала),
Запросы всегда являются тем же, или действительно ли они являются динамичными в некотором роде?
У Вас есть тестовая буровая установка с реалистическими сообщениями и запросами? В противном случае Вам нужен тот для оценки любых ответов, данных здесь с данными. Если бы Вы делаете, я ожидал бы, что это будет довольно легко попробовать его сами :)