8901
Announce Your Software/Service/Product / dot Net complaints
« Last post by wraith808 on October 25, 2010, 09:22 AM »<snip>
There's a few relevant issues with it, though:</snip>
- .NET appsare more memory-hungry than native equivalents, and there's CPU-speed overhead as well - although it's not as easy as saying "always slower", but that's a topic on it's own.
-f0dder (October 24, 2010, 04:05 PM)
Actually, with .NET the reason that it appears to use more memory is because of the way that memory is managed in the .NET framework, specifically with regard to GC. The collection process requires resources. Garbage collection often derives information regarding an object’s use to make decisions on its future availability. Garbage collection may occur at inopportune times. This can result in delays or slowdowns that may be unacceptable. Additionally, since garbage collection typically does not happen immediately upon when an object is no longer needed, the overall memory footprint of the application may be higher. The GC in .NET also forces .NET programs to have poor locality, i.e. it interacts with local system resources in an often less-than-optimal manner, namely becasue they often consume more memory than they actually use.
Putting the long explanation behind a cut
Spoiler
The Simplified model of .NET GC
The rules:
The rules:
- All objects allocated from one contiguous range or memory (with one exception)
- The heap is divided into generations (see diagram).
- Objects in any generation should be roughly the same age.
- Objects in higher generations are considered more likely to be stable.
- The oldest objects are in the lowest addresses on the heap.
- An allocation pointer marks the boundary between allocated and free memory.
- Periodically, dead objects are removed and everything is “slid up” towards the lower address range on the heap.(eliminate fragmentation).
- The order of objects on the heap is the order in which they were created (with one exception)
- There are never any gaps between objects. (yes, another exception!)
- Some of the free memory is committed, and when needed more memory is requested from the operating system for the reserved space.

Recent Posts
Just couldn't resist that~!
) the reason that you ended up where you are now? 
