I found out a weird thing in GC, when I have application that removed reference to many large objects, it still eats a lot of ram, in my case around 300mb. This memory is not cleaned even if I call GC.Collect()
Then I tried to randomly call it 10 times in few seconds, and result: 200mb of ram was freed resulting in my application eating ONLY 100mb instead of 300mb of private ram (not virtual but the physical / resident ram)
Why is this? How can I make GC clean this memory automatically without having to call it by hand?