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>"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= ."</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'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==--