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 |
what do you mean by table-per-hierarchy?
what is Thread Priority?
What are the benefits of .net framework?
What is difference between html.beginform and ajax.beginform?
Which is the best institute in hyderabad to learn DotNet?
152 Answers Cygnet Infotech, Infosys, Student, SVIT, TCS,
Explain the advantages of asp.net mvc over asp.net?
Can you set the unlimited length for "maxjsonlength" property in config?
Explain the .net framework.
Can you write a class without specifying namespace? Which namespace does it belong to by default?
In razor syntax, what is the escape sequence character for @ symbol?
What is Partial Assembly References?
How could we achieve Langauge Interoperability through "CLS"?? Please Expalin in detail with Example.. Thanks for the Help!!!!!