XML and Mvp.xml
Today almost every application has to work with XML file. In order to work with XML the framework gives us a couple of classes, the most used class XmlDocument.
I use to use XmlDocument until I started to have performance problems in my application.
Why I was using XmlDocument? It is the easier one ;).
But "luckily" I had performance problems so I had to
study more about dealing with XML,
Then now, let me give you an advise, if you are going
to use XML you should go to Daniel Cazzulino weblog and read his Roadmap to High Performance XML,
after that probably you (like me) are going to download
the Mvp.xml project.
I'm doing an XML comparison tool, in order to test my
tool I have 2 XML files (old.xml and new.xml sizes 6 MB
aprox).
- First Implementation using XmlDocument
In this step really I don't remember exactly the
numbers, the only thing that I can tell you is that
times were
really unacceptable.
- Using XPathDocument
Why I was using XmlDocument !!! Now times are
acceptable, less than half I remember.
I don't know you but when I start to work in
performance problems I really enjoy watching how
performance numbers go down and down, so in this
case
I continued looking for others improvements. In this
case I found Daniel Cazzulino weblog.
I downloaded Mvp.xml project and I started to use their
classes. At this time the comparison takes 11s
aprox.
- Using Mvp.Xml (XPathCache,
IndexingXPathNavigator, SubtreeXPathNavigator) the time
today is 6.71. Sorry but I don't know exactly the
contribution
of each class :(
In order to provide times for my application I'm using
a simple class from Code Project. You can take a look of it because it is really
helpful to have it in your toolbox.
Conclusion: If you are going work with Xml files trust
me read the roadmap and use Mvp.xml.