Quote: "But as you open more and more .net apps, they take up less and less memory because it reuses resources that the other programs are already using. This is one the benefits of using a framework. But it's a two edged sword... if you only use one app, for example, it uses more ram."
That's not really .NET specific - DLLs have the same effect (loaded for one application means they can be shared with another)
The few reasons for high RAM usage I consider to be key are:
* The runtime consumes memory in large segments rather than small blocks. Typically they're about 8MB each, so often a small .NET app will consume 12-16MB just by opening
* The runtime has to do a lot of work to run the app - either ahead of time or on the fly. The CLR has to convert CIL bytecode to the equivalent machine code, and no doubt this will add to the extra RAM burden as well
* Garbage collection is obviously delayed before it can remove things. Obviously, the garbage collector can't read the developer's mind, so often it will allow data to stay in RAM for longer than necessary (although the generational GC it uses it fairly decent)

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0