That's where I read them.  You can also see this in practice by writing a
contrived app that performs allocations:

...
while(true)
    byte [] data = new byte[1024];
...

And hooking the app up to perfmon monitoring CLR memory counters.

Jim

> -----Original Message-----
> From: Heath Ryan [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, May 02, 2002 6:45 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] How often does Garbage Collection run?
>
>
> Hey,
>
> The first place where i saw these figures was in
> Jeff Richter' book 'Applied MS .NET Framework programming'
>
> http://www.amazon.com/exec/obidos/ASIN/0735614229/qid=10203360
> 68/sr=1-1/ref=
> sr_1_1/102-0768102-0848164
>
> Regards,
> Ryan
>
> -----Original Message-----
> From: Pradeep Tapadiya [mailto:[EMAIL PROTECTED]]
> Sent: donderdag 2 mei 2002 02:33
> To: [EMAIL PROTECTED]
> Subject: Re: [DOTNET] How often does Garbage Collection run?
>
>
> 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.
>
>
> -------------------------------------
> The information included in this message is personal and/or
> confidential and
> intended exclusively for the addressees as stated. This
> message and/or the
> accompanying documents may contain confidential information
> and should be
> handled accordingly. If you are not the intended reader of
> this message, we
> urgently request that you notify Centric immediately and that
> you delete
> this e-mail and any copies of it from your system and destroy
> any printouts
> immediately.
> It is forbidden to distribute, reproduce, use or disclose the
> information in
> this e-mail to third parties without obtaining prior permission from
> Centric. We expressly point out that there are risks
> associated with the use
> of e-mail. Centric and the companies within the group shall
> not accept any
> liability whatsoever for damage resulting from the use of
> e-mail. Legally
> binding obligations can only arise for Centric by means of a written
> instrument, signed by an authorized representative of Centric.
> -------------------------------------
>
> 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