|
The Microsoft .NET Framework is a software component that is a part of several Microsoft Windows operating systems. It is a key Microsoft offering and is intended to be used by most new applications created for the Windows platform.
Also part of the .NET Framework, this runtime environment is known as the Common Language Runtime (CLR). The CLR provides the appearance of an application virtual machine so that programmers need not consider the capabilities of the specific CPU that will execute the program. Check out what the houston .net consultant has to offer about this.
The .NET Framework CLR frees the developer from the burden of managing memory; instead it does the memory management itself. To this end, the memory allocated to instantiations of .NET types (objects) is done contiguously from the managed heap, a pool of memory managed by the CLR. As long as there exists a reference to an object, which might be either a direct reference to an object or via a graph of objects, the object is considered to be in use by the CLR.
When there is no reference to an object, and it cannot be reached or used, it becomes garbage. However, it still holds on to the memory allocated to it. .NET Framework includes a garbage collector which runs periodically, on a separate thread from the application's thread, that enumerates all the unusable objects and reclaims the memory allocated to them. Learn more about this with the houston .net consultant.
The .NET Garbage Collector (GC) is a non-deterministic, compacting, mark-and-sweep garbage collector. The GC runs only when a certain amount of memory has been used or there is enough pressure for memory on the system. Since it is not guaranteed when the conditions to reclaim memory are reached, the GC runs are non-deterministic.
Each .NET application has a set of roots, which are pointers to objects on the managed heap. These include references to static objects and objects defined as local variables or method parameters currently in scope, as well as objects referred to by CPU registers. Check out what the houston .net consultant has to offer about this.
When the GC runs, it pauses the application, and for each object referred to in the root, it recursively enumerates all the objects reachable from the root objects and marks them as reachable. It uses .NET metadata and reflection to discover the objects encapsulated by an object, and then recursively walk them. If you want more information about the .NET Framework, then visit the houston .net consultant.
www.astonishdesigns.com
|
|