Javascript:SpiderMonkey:ProjectGenerationGarbageCollection: Difference between revisions

m
Convert some HTML to wiki format
m (Resurrect Milestone, Deliverable, and Assigned columns)
m (Convert some HTML to wiki format)
Line 1: Line 1:
<p>Wiki conversion of original Google Document: https://docs.google.com/a/jamsni.com/document/d/1-GZ8F0ZabvdpCnRQaecId0yuu4QFYr5pAvnRC_KFchc/edit
<p>Wiki conversion of original Google Document: https://docs.google.com/a/jamsni.com/document/d/1-GZ8F0ZabvdpCnRQaecId0yuu4QFYr5pAvnRC_KFchc/edit
</p><p><br />
</p>
</p>
<h1> Objective </h1>
 
== Objective ==
<p>Implement Generational Garbage collection in Spider Monkey. &lt;Some goal based off V8 performance delta&#160;% on Earley Boyer benchmark&gt;</p>
<p>Implement Generational Garbage collection in Spider Monkey. &lt;Some goal based off V8 performance delta&#160;% on Earley Boyer benchmark&gt;</p>
<b>Accountable</b>: Naveed<br />
<b>Accountable</b>: Naveed<br />
Line 11: Line 11:
<b>Tracking Bug:</b> [meta] Implement generational garbage collection - <span class="fck_mw_template"><span class="fck_mw_template"><span class="fck_mw_template">{{bug|619558}}</span></span></span>
<b>Tracking Bug:</b> [meta] Implement generational garbage collection - <span class="fck_mw_template"><span class="fck_mw_template"><span class="fck_mw_template">{{bug|619558}}</span></span></span>


<h1> Milestones </h1>
== Milestones ==


Original schedule:
=== Original schedule ===


{| class="wikitable"
{| class="wikitable"
Line 153: Line 153:
|}
|}


<h1> Steps </h1>
== Steps ==
<h2> Exact Rooting done in JS Shell <span class="fck_mw_template"><span class="fck_mw_template">{{bug|753203}}</span></span> </h2>
 
=== Exact Rooting done in JS Shell {{bug|753203}} ===
 
<p>12 weeks started
<p>12 weeks started
</p>
</p>
Line 181: Line 183:
</li></ul>
</li></ul>
</li></ul>
</li></ul>
<h2> JIT Integration with post barriers - 4 weeks, parallelized </h2>
 
=== JIT Integration with post barriers - 4 weeks, parallelized ===
 
<ul><li> IonMonkey <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831506}}</span></span> - 1 week (bhackett)
<ul><li> IonMonkey <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831506}}</span></span> - 1 week (bhackett)
</li><li> JaegerMonkey <span class="fck_mw_template"><span class="fck_mw_template">{{bug|764876}}</span></span> - 2 days (bhackett)
</li><li> JaegerMonkey <span class="fck_mw_template"><span class="fck_mw_template">{{bug|764876}}</span></span> - 2 days (bhackett)
</li><li> Baseline JIT <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831507}}</span></span> - &lt;ask jandem/djvj for an estimate&gt;
</li><li> Baseline JIT <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831507}}</span></span> - &lt;ask jandem/djvj for an estimate&gt;
</li></ul>
</li></ul>
<h2> Generational Garbage Collection in the Shell </h2>
 
=== Generational Garbage Collection in the Shell ===
 
<ul><li> Implement prototype algorithm (terrence) - 1 week
<ul><li> Implement prototype algorithm (terrence) - 1 week
</li><li> This is a potential milestone: we would need to build it and test it on TBPL similar to how |r| works now -- |GGCJS| - done.
</li><li> This is a potential milestone: we would need to build it and test it on TBPL similar to how |r| works now -- |GGCJS| - done.
Line 194: Line 200:
</li></ul>
</li></ul>
</li></ul>
</li></ul>
<h2> Exactly Root the Browser <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831379}}</span></span> - 10 weeks </h2>
 
=== Exactly Root the Browser <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831379}}</span></span> - 10 weeks ===
 
<ul><li> This is a potential milestone: we would turn on exact rooting for release FF at this point. We would not get a performance boost from this (necessarily), but it would lock in our work to this point.
<ul><li> This is a potential milestone: we would turn on exact rooting for release FF at this point. We would not get a performance boost from this (necessarily), but it would lock in our work to this point.
</li></ul>
</li></ul>
<h2> Performance Tuning - 4 weeks (This should probably start asap) </h2>
 
=== Performance Tuning - 4 weeks (This should probably start asap) ===
 
<ul><li> Implement a Nursery <span class="fck_mw_template"><span class="fck_mw_template">{{bug|706885}}</span></span> - 1 week
<ul><li> Implement a Nursery <span class="fck_mw_template"><span class="fck_mw_template">{{bug|706885}}</span></span> - 1 week
</li><li> Test against V8 Earley-Boyer benchmark.
</li><li> Test against V8 Earley-Boyer benchmark.
Line 205: Line 215:
</li><li> Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831886}}</span></span> (bhackett) - done
</li><li> Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable <span class="fck_mw_template"><span class="fck_mw_template">{{bug|831886}}</span></span> (bhackett) - done
</li></ul>
</li></ul>
<h2> Make the Post Barrier Verifier Green in the browser <span class="fck_mw_template"><span class="fck_mw_template">{{bug|764882}}</span></span> </h2>
 
=== Make the Post Barrier Verifier Green in the browser <span class="fck_mw_template"><span class="fck_mw_template">{{bug|764882}}</span></span> ===
 
<ul><li> Investigate how long it will take to do generational barriers - 1 week
<ul><li> Investigate how long it will take to do generational barriers - 1 week
</li><li> We may need to rewrite the maps in xpconnect and the browser in terms of HashTable: this could be a bunch of work.  
</li><li> We may need to rewrite the maps in xpconnect and the browser in terms of HashTable: this could be a bunch of work.  
</li><li> Make JS_IsAboutToBeFinalized indirect <span class="fck_mw_template"><span class="fck_mw_template">{{bug|765432}}</span></span> - 10 weeks
</li><li> Make JS_IsAboutToBeFinalized indirect <span class="fck_mw_template"><span class="fck_mw_template">{{bug|765432}}</span></span> - 10 weeks
</li></ul>
</li></ul>
<h1> Other </h1>
 
== Other ==
 
<ul><li> Should we establish a new benchmark specifically for GGC. (sfink votes yes)
<ul><li> Should we establish a new benchmark specifically for GGC. (sfink votes yes)
<ul><li> What would it measure? there are multiple goals, e.g. throughput/MMU/pause time
<ul><li> What would it measure? there are multiple goals, e.g. throughput/MMU/pause time
Line 227: Line 241:
</li></ul>
</li></ul>
</li></ul>
</li></ul>
<h1> Risks </h1>
 
== Risks ==
 
<ul>
<ul>
<li> Team is responsible for many top crashers</li>
<li> Team is responsible for many top crashers</li>
Confirmed users
3,314

edits