Mam dość duży plik XML, który muszę przeanalizować w strukturze klasy .NET (do mapowania w formacie rekordu o stałej długości i przesyłany przez MQ). Wydajność jest ważna, ale nie absolutnie krytyczna.Jak duża jest różnica prędkości między XPathNavigator i XmlReader, naprawdę?
Niemal zawsze używam XPathNavigator
do odczytywania plików XML, ponieważ jest to znacznie łatwiejsze niż XmlReader
. Z drugiej strony, wiem, że XmlReader
jest szybszy niż XPathNavigator
, ponieważ teoretycznie czyta tylko jeden węzeł na raz, podczas gdy XPathNavigator
musi przeczytać wystarczająco dużo, aby wykonać XPath, być może cały dokument.
Moje pytanie brzmi: ile szybciej jest naprawdę? Czy zauważy różnicę podczas czytania kilku tysięcy węzłów? Jaka jest przewaga, w której muszę przejść na XmlReader
? Czy jest to XPathNavigator
zoptymalizowane do tego stopnia, że zawsze jest dobrym rozwiązaniem?
Większość moich doświadczeń z XMLem dotyczy stosunkowo małych plików, dlatego szukam informacji od każdego, kto pracował z dużymi plikami.