How Garbage Collector identifies the objects which are not
in use?
Answers were Sorted based on User's Feedback
Answer / rahul veer
Garbage Collector determines which objects are no longer
being used by examining the application's roots. In Dot Net
each and every application has a set of roots. Each root
either refers to an object on the managed heap or is set to
null. An application's roots include global and static
object pointers, local variables and reference object
parameters on a thread's stack, and CPU registers. The
garbage collector has access to the list of active roots
that the just-in-time (JIT) compiler and the runtime
maintain. Using this list, it examines an application's
roots, and in the process creates a graph that contains all
the objects that are reachable from the roots. Objects that
are not in the graph are unreachable from the application's
roots. The garbage collector considers unreachable objects
as garbage and not in use.
Is This Answer Correct ? | 10 Yes | 1 No |
Answer / bharani
GC identifies the objects which are not in use by the use
of generations. Whenever a new object is created or deleted
GC sweeps the heap by moving the variables to different
generations, and finally destructs the objects whichever
belongs to generation 0.
Is This Answer Correct ? | 7 Yes | 4 No |
Answer / kiran vaidya
When any new object is created, it has two references
assigned, one is present on the application's stack area
and other is on the GC's stack. With creation of any new
object, it will be automatically assigned the generation as
0.
Now, there are two cases where object's reference is
removed from application stack.
1.When programmer assignes any object as 'null', the
reference on the application's stack to the specific object
is automatically removed.
2.When the function scope is ended, the references to those
objects in the function are automatically removed from
stack.
Now, GC compares the entries of references at its own
stack Vs the entries of references available at the
application stack.
By comparing them, it finds the object's references in
its stack to which, no match was found in the application
stack and releases memory allocated to them.
Is This Answer Correct ? | 4 Yes | 2 No |
Answer / kanth
Garbage Collector identifies a unused object using "referce
counting"
reference countiing: how many times the object is used
if the count is zero..its is unuesd....now the gc will
release the resources..
Is This Answer Correct ? | 5 Yes | 6 No |
Answer / anirudh menon
C# makes use of the Finilize() destructor for this purpose.
The CLR periodically checks the entire program for unused
objects using the refrence tracing garbage collector which
in turn invokes he Finilze() destructor to relese the
memory of such objects.
Is This Answer Correct ? | 3 Yes | 7 No |
Explain ASP.NET MVC Identity and Security?
How .net assemblies are registred as private and shared assembly ?
Is mvc 4 supporting windows azure sdk (software development kit) ?
Does Tempdata hold the data for other request in ASP.Net MVC?
What is partialview in asp.net mvc?
What is managed extensibility framework?
Which is the best institute for .net?
Is it possible to cancel filter execution?
What is renderbody?
Explain the .net framework.
What you mean by routing in asp.net mvc?
What are the difference between asynchronous controller implementation between asp.net mvc 3 & asp.net mvc 4?