Без подробностей трудно сказать, где ваше медленное место. Вы измеряете, где время тратится в вашем приложении?
Я нахожу, что много раз, большой набор данных излишне материализуется, что пожирает память и может снизить производительность. Это может произойти в вашем сценарии, если вы получите входные данные XML и сохраните их в XmlDocument
перед началом анализа данных. Это убьет вас, если XmlDocument
большой.
Если возможно, стремитесь обрабатывать данные постепенно, читая их с XmlReader
. Некоторые наборы данных поддаются этому подходу: требуемая обработка не требует большого количества контекста, но происходит линейно по всем данным. В этом случае вы увидите огромное улучшение по сравнению с тем, как все засосать в XmlDocument
. Однако другие наборы данных настолько структурированы, что вам действительно нужно иметь все в ядре, прежде чем продолжить.
Опять же, трудно сказать, есть ли лучший способ, не понимая, как структурированы входные данные.