title: Private bytes for IIS Pool Increases Greatly after loading XMLs
body: <pre><code>            try
                  {
                      using (FileStream fs = new FileStream(filePathAndName, FileMode.Open))
                      {
                          using (XmlReader xmlReader = XmlReader.Create(fs))
                          {
                              using (XmlDictionaryReader xmlDictionaryReader = XmlDictionaryReader.CreateDictionaryReader(xmlReader))
                              {
                                  DataContractSerializer deserializer = new DataContractSerializer(typeof(T));
                                  obj = (T)deserializer.ReadObject(xmlDictionaryReader);
                                  xmlDictionaryReader.Dispose();
                              }
                              xmlReader.Dispose();
                          }
                          fs.Dispose();
                      }
                  }
  </code></pre>
  
  <p>Above mentioned code increases private bytes for my IIS pool by 300 MB. The number of files loaded are ~16,000 with an average size of 3 KB each. That's around ~60 MB of data causing an increase of 300 MB in memory. </p>
  
  <p>Is there anything I am missing here which is causing the private bytes to balloon so much? Can I make it more efficient?</p>
  
  <p><strong>Interesting observation</strong>: I tried adding GC.Collect() right after all the files are loaded, it decreased the GC.GetTotalMemory(false) but did not affect the IIS APP POOL private bytes. </p>