4
edits
No edit summary |
|||
Line 1: | Line 1: | ||
<p>Objective: Implement Generational Garbage collection in Spider Monkey. <Some goal based off V8 performance delta % on Earley Boyer benchmark> | <p>Objective: Implement Generational Garbage collection in Spider Monkey. <Some goal based off V8 performance delta % on Earley Boyer benchmark> | ||
</p><p>Accountable: Naveed | </p><p>Accountable: Naveed | ||
Responsible: Terrence, Jon, and Steve, evilpie Ms2ger | <p>Responsible: Terrence, Jon, and Steve, evilpie Ms2ger | ||
Consulted: bhackett billm | Consulted: bhackett billm | ||
Informed: Product Marketing | Informed: Product Marketing | ||
</p> | |||
</p><p>Generational GC - Bug 619558 | </p><p>Generational GC - Bug 619558 | ||
Steps | <p>Steps | ||
Exact Rooting done in JS Shell [Bug 753203] - 12 weeks started | Exact Rooting done in JS Shell [Bug 753203] - 12 weeks started | ||
Rooting Analysis on TinderBox (sfink) - 3 weeks | Rooting Analysis on TinderBox (sfink) - 3 weeks | ||
Line 29: | Line 30: | ||
http://people.mozilla.org/~bhackett/rootingHazards.html | http://people.mozilla.org/~bhackett/rootingHazards.html | ||
http://people.mozilla.org/~bhackett/gcFunctions.html | http://people.mozilla.org/~bhackett/gcFunctions.html | ||
</p> | |||
</p><p>JIT Integration with post barriers - 4 weeks, parallelized | </p><p>JIT Integration with post barriers - 4 weeks, parallelized | ||
IonMonkey [Bug 831506] - 1 week (bhackett) | <p>IonMonkey [Bug 831506] - 1 week (bhackett) | ||
JaegerMonkey [Bug 764876] - 2 days (bhackett) | JaegerMonkey [Bug 764876] - 2 days (bhackett) | ||
Baseline JIT [Bug 831507] - <ask jandem/djvj for an estimate> | Baseline JIT [Bug 831507] - <ask jandem/djvj for an estimate> | ||
</p> | |||
</p><p>Generation Garbage Collection in the Shell | </p><p>Generation Garbage Collection in the Shell | ||
Implement prototype algorithm (terrence) - 1 week | <p>Implement prototype algorithm (terrence) - 1 week | ||
This is a potential milestone: we would need to build it and test it on TBPL similar to how |r| works now -- |GGCJS|. | This is a potential milestone: we would need to build it and test it on TBPL similar to how |r| works now -- |GGCJS|. | ||
</p> | |||
</p><p>Exactly Root the Browser [Bug 831379] - 10 weeks | </p><p>Exactly Root the Browser [Bug 831379] - 10 weeks | ||
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. | <p>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. | ||
</p> | |||
</p><p>Performance Tuning - 4 weeks (This should probably start asap) | </p><p>Performance Tuning - 4 weeks (This should probably start asap) | ||
Test against V8 Earley-Boyer benchmark. | <p>Test against V8 Earley-Boyer benchmark. | ||
Also v8 deltablue, raytrace | Also v8 deltablue, raytrace | ||
Implement a Nursery [Bug 706885] - 1 week | Implement a Nursery [Bug 706885] - 1 week | ||
We may need to Implement Bill’s Pools/Zones idea to get the nursery to the requisite perf - 6 weeks | We may need to Implement Bill’s Pools/Zones idea to get the nursery to the requisite perf - 6 weeks | ||
Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable - ??? weeks (start early) (bhackett) | Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable - ??? weeks (start early) (bhackett) | ||
</p> | |||
</p><p>Re-implement HashTable rekeying | </p><p>Re-implement HashTable rekeying | ||
We undid this code because it was a perf regression and was still a bit buggy. (terrence) - 3 weeks | <p>We undid this code because it was a perf regression and was still a bit buggy. (terrence) - 3 weeks | ||
</p> | |||
</p><p>Make the Post Barrier Verifier Green in the browser [Bug 764882] | </p><p>Make the Post Barrier Verifier Green in the browser [Bug 764882] | ||
Investigate how long it will take to do generational barriers - 1 week | <p>Investigate how long it will take to do generational barriers - 1 week | ||
</p> | |||
</p><p>We may need to rewrite the maps in xpconnect and the browser in terms of HashTable: this could be a bunch of work. | </p><p>We may need to rewrite the maps in xpconnect and the browser in terms of HashTable: this could be a bunch of work. | ||
Make JS_IsAboutToBeFinalized indirect [Bug 765432] - 10 weeks | <p>Make JS_IsAboutToBeFinalized indirect [Bug 765432] - 10 weeks | ||
</p> | |||
</p><p>OTHER | </p><p>OTHER | ||
</p><p>Should we establish a new benchmark specifically for GGC. (sfink votes yes) | </p><p>Should we establish a new benchmark specifically for GGC. (sfink votes yes) | ||
What would it measure? there are multiple goals, e.g. throughput/MMU/pause time | <p>What would it measure? there are multiple goals, e.g. throughput/MMU/pause time | ||
Should we make it a public benchmark? | Should we make it a public benchmark? | ||
What workloads should we consider? | What workloads should we consider? | ||
Line 61: | Line 70: | ||
Compacting GC - Revisit in Febuary/March - 1 Month | Compacting GC - Revisit in Febuary/March - 1 Month | ||
Delayed until exact rooting is fully done. We can add this in if we have time in the schedule that we cannot parallelize. | Delayed until exact rooting is fully done. We can add this in if we have time in the schedule that we cannot parallelize. | ||
</p> | |||
</p><p>Risks | </p><p>Risks | ||
Team is responsible for many top crashers | <p>Team is responsible for many top crashers | ||
External rooting API has not been designed | External rooting API has not been designed | ||
GGC algorithm has not been decided on - it may not be faster | GGC algorithm has not been decided on - it may not be faster | ||
JSD1 exact rooting is lurking | JSD1 exact rooting is lurking | ||
</p> | |||
</p> | </p> |
edits