Author: Tess1 | Posted on: 5/5/2010 10:39:19 AM | Views : 680

I have written before about high memory usage caused by improper usage of XmlSerializer objects both in a case study and in a debugging lab.  The problem there was that every time you create a new XmlSerializer object with a non-default constructor, you generate a new dynamic assembly that contains the definition and methods for the serializer.  Since assemblies can't be unloaded from a process unless the application domain they are loaded in is unloaded memory will keep increasing if you create new XmlSerializer objects until eventually you end up with a System.OutOfMemoryException.
In the case of the XmlSerializer dynamic assemblies, they are quite easy to spot as you can look at meta-data (see previous posts) and figure out that they are XmlSerializer generated assemblies, and you can even ...

Go to the complete details ...