Question regarding adding a new generation to mono's GC

Jérôme De Cuyper <[email protected]> Fri, 5 Nov 2010 18:56:52 -0600
Newsgroups gmane.comp.gnome.mono.garbage-collection
Message-ID <[email protected]>
--===============0711948450==
Content-Type: multipart/alternative; boundary=000e0cd6acb2b6677d049457df89

--000e0cd6acb2b6677d049457df89
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

This is my first message on the mono-gc mailing list and I hope I will not
break any implicit rule it may have. Otherwise please let me know!

I decided to use my CS thesis as an opportunity to contribute some code to
the mono project. Lupus kindly offered the following task:

"we currently have 2 generations: introduce a third one that sits between
the nursery and the old generation. It should be a bump-pointer
style generation for fast gen0 collections."

Before starting to dig into the code, I need to justify the change that is
proposed. I suppose the purpose of a new generation is to create a  group o=
f
objects from
a different age in order to recollect as much of them as possible
before sending them to the two oldest generations. Is that correct?

Please correct me but I'm guessing the new flow of collection would be as
follow:

gen0 - newest objects - bump-pointer based
*gen1 - middle aged objects  - bump-pointer based (the new generation)*
gen2 - oldest generation - size-segregated freelists
gen3 - oldest generation - bump-pointer based

Thank you!

J=C3=A9r=C3=B4me De Cuyper
http://www.jdecuyper.com

--000e0cd6acb2b6677d049457df89
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div><div>This is my first message on the mono-gc mailing list and I hope I=
 will not break any implicit rule it may have. Otherwise please let me know=
!</div><div><br></div><div>I decided to use my CS thesis as an opportunity =
to contribute some code to the mono project. Lupus kindly offered the follo=
wing task:</div>

<div><br></div><div><div>&quot;we currently have 2 generations: introduce a=
 third one that sits=C2=A0between the nursery and the old generation. It sh=
ould be a bump-pointer</div><div>style generation for fast gen0 collections=
.&quot;</div>

</div><div><br></div><div><div>Before starting to dig into the code, I need=
 to justify the change that is proposed. I suppose the purpose of a new gen=
eration is to create a =C2=A0group of objects from</div><div>a different ag=
e in order to recollect as much of them as possible before=C2=A0sending the=
m to the two oldest generations. Is that correct?</div>

</div></div><div><br></div><div>Please correct me but I&#39;m guessing the =
new flow of collection would be as follow:=C2=A0</div><div><br></div><div>g=
en0 - newest objects -=C2=A0<span class=3D"Apple-style-span" style=3D"font-=
family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">bu=
mp-pointer based</span></div>

<div><i>gen1 - middle aged objects =C2=A0-=C2=A0<span class=3D"Apple-style-=
span" style=3D"font-family: arial, sans-serif; font-size: 13px; border-coll=
apse: collapse; ">bump-pointer based (the new generation)</span></i></div><=
div>gen2=C2=A0- oldest generation -=C2=A0<span class=3D"Apple-style-span" s=
tyle=3D"font-family: arial, sans-serif; font-size: 13px; border-collapse: c=
ollapse; ">size-segregated freelists</span></div>

<div>gen3 - oldest generation -=C2=A0<span class=3D"Apple-style-span" style=
=3D"font-family: arial, sans-serif; font-size: 13px; border-collapse: colla=
pse; ">bump-pointer based</span></div><div><br></div><div>Thank you!</div><=
div>
<br>
</div>J=C3=A9r=C3=B4me De Cuyper<br><a href=3D"http://www.jdecuyper.com" ta=
rget=3D"_blank">http://www.jdecuyper.com</a><br><br><br>

--000e0cd6acb2b6677d049457df89--

--===============0711948450==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Mono-gc-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-gc-list

--===============0711948450==--