Search code examples
.netlinq-to-xmlxmldocumentxmlserializerxmlreader

Performance: XmlSerializer vs XmlReader vs XmlDocument vs XDocument


I'm working on a little web project and would like to read/write to an XML file. Performance is my first priority.

I've come to this great post on comparing the mentioned approaches except XmlSerializer.

I prefer XmlSerializer since it makes the code much cleaner. But I don't know about its performance. What kind does XmlSerializer use inside to write to XML files?


Solution

  • As for the performance of XmlSerializer, see http://msdn.microsoft.com/en-us/library/182eeyhh.aspx which says:

    The XmlSerializer creates C# files and compiles them into .dll files to perform this serialization. In .NET Framework 2.0, the XML Serializer Generator Tool (Sgen.exe) is designed to generate these serialization assemblies in advance to be deployed with your application and improve startup performance.

    So you can increase performance of XmlSerializer by making use of the sgen tool http://msdn.microsoft.com/en-us/library/bk3w6240.aspx, that way you can avoid the performance hit you get when new XmlSerializer() creates and compiles C# files.