Jim,

Good summary!

Where did you get the size limits for each generation? I had
asked for this information to Microsoft folks via .NET authors
connection some time ago but could not get an answer :-(.

Pradeep
http://www.tapadiya.net/pradeep

----- Original Message -----
From: "Murphy, James" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, May 01, 2002 12:45 PM
Subject: Re: [DOTNET] How often does Garbage Collection run?


> I suspect you knew it wasn't that simple a question...
>
> the GC collects parts of the managed heap at different frequencies.  The
> heap is partitioned into 3 sections called generations.  The idea is that
> collecting a generation is a lot cheaper than collecting the entire heap.
>
> An object lives in one of the generations depending on its "age".  The
> youngest objects are on generation 0, older ones in generation 1 and the
> oldest in generation 2.  Age is the number of collections that have
occurred
> during this objects lifetime.
>
> This algorithm (the ephemeral garbage collector) performs well for the
> typical application.  Its based on the assumption that the newer an object
> is the shorter it lifetime will be.  Conversely the older an object is the
> longer its lifetime.  When an object is newly created it is placed in
> generation 0.  If the collector runs and the object is still in use it is
> promoted to generation 1.
>
> A collection is usually kicked off automatically when each generation hits
a
> threshold limit.  Generation  0 is collected much more frequently than
> generation 1 which is collected much more frequently than generation 2.
> This is because the heap size triggers of the generations:
>
> Typically at AppDomain startup they at:
>
> Generation 0: 256 KB
> Generation 1: 2 MB
> Generation 2: 10 MB
>
> These are tuned at runtime to maximize performance.
>
> The GC also runs when you call GC.Collect(int generation) but doing so
> usually screws with he GC algorithm.
>
> A final collection will also run when the AppDomain unloads.
>
> Jim
>
> > -----Original Message-----
> > From: Farhan [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, May 01, 2002 3:32 PM
> > To: [EMAIL PROTECTED]
> > Subject: [DOTNET] How often does Garbage Collection run?
> >
> >
> > How often does garbage collection run? what condition needs
> > to be true in
> > order for it to run? is there any way to tell when the
> > Garbage collection
> > will run?
> >
> > Thanks,
> > Farhan
> >
> > You can read messages from the DOTNET archive, unsubscribe
> > from DOTNET, or
> > subscribe to other DevelopMentor lists at http://discuss.develop.com.
> >
>
> You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to