I was pointed to this blog
post by Rich Strahl who says he is a Microsoft MVP. In the article he explains why your WinForms application appears to take a lot of memory when it starts up and then drops down significantly if the window is minimized. He then provides a hack to help you reduce the working set. I was intrigued by the idea but I am not sure how useful it is. If the problem is really startup code then the memory manager should be swapping out the unused code for more relevant code as the application executes. I haven't done any profiling to verify it but I would think that running an application over time would end up with the same working set size whether you left all the startup code loaded after the form loads or if you used this method to shrink the working set right after loading and then let it grow.