Could someone provide a very high-level overview of .NET memory management?
More specifically I’m looking for an overview of memory management..
- is there an overall .net heap?
- are heaps application based?
- when I run my application is a new heap created/memory allocated or is the memory from the overal .net heap?
- what happens when the .net heap runs out of its original memory? does it request more from OS?
- the basics would be a great start for me to then go-on and read more
Each process has its own heap – and if more memory is needed after the GC has cleaned up everything it can, the process asks the OS for more information.
The best resource I know about for this sort of information is Jeffrey Richter’s CLR via C# book.