4
edits
(Created page with "Objective: Implement Generational Garbage collection in Spider Monkey. <Some goal based off V8 performance delta % on Earley Boyer benchmark> Accountable: Naveed Responsible: Te...") |
No edit summary |
||
Line 1: | Line 1: | ||
Objective: Implement Generational Garbage collection in Spider Monkey. | <p>Objective: Implement Generational Garbage collection in Spider Monkey. <Some goal based off V8 performance delta % on Earley Boyer benchmark> | ||
</p><p>Accountable: Naveed | |||
Accountable: Naveed | |||
Responsible: Terrence, Jon, and Steve, evilpie Ms2ger | Responsible: Terrence, Jon, and Steve, evilpie Ms2ger | ||
Consulted: bhackett billm | Consulted: bhackett billm | ||
Informed: Product Marketing | Informed: Product Marketing | ||
</p><p>Generational GC - Bug 619558 | |||
Generational GC - Bug 619558 | |||
Steps | Steps | ||
Exact Rooting done in JS Shell [Bug 753203] - 12 weeks started | Exact Rooting done in JS Shell [Bug 753203] - 12 weeks started | ||
Line 31: | Line 29: | ||
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>JIT Integration with post barriers - 4 weeks, parallelized | |||
JIT Integration with post barriers - 4 weeks, parallelized | |||
IonMonkey [Bug 831506] - 1 week (bhackett) | IonMonkey [Bug 831506] - 1 week (bhackett) | ||
JaegerMonkey [Bug 764876] - 2 days (bhackett) | JaegerMonkey [Bug 764876] - 2 days (bhackett) | ||
Baseline JIT [Bug 831507] - | Baseline JIT [Bug 831507] - <ask jandem/djvj for an estimate> | ||
</p><p>Generation Garbage Collection in the Shell | |||
Generation Garbage Collection in the Shell | |||
Implement prototype algorithm (terrence) - 1 week | 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>Exactly Root the Browser [Bug 831379] - 10 weeks | |||
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. | 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>Performance Tuning - 4 weeks (This should probably start asap) | |||
Performance Tuning - 4 weeks (This should probably start asap) | |||
Test against V8 Earley-Boyer benchmark. | 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>Re-implement HashTable rekeying | |||
Re-implement HashTable rekeying | |||
We undid this code because it was a perf regression and was still a bit buggy. (terrence) - 3 weeks | We undid this code because it was a perf regression and was still a bit buggy. (terrence) - 3 weeks | ||
</p><p>Make the Post Barrier Verifier Green in the browser [Bug 764882] | |||
Make the Post Barrier Verifier Green in the browser [Bug 764882] | |||
Investigate how long it will take to do generational barriers - 1 week | Investigate how long it will take to do generational barriers - 1 week | ||
</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. | |||
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 | Make JS_IsAboutToBeFinalized indirect [Bug 765432] - 10 weeks | ||
</p><p>OTHER | |||
OTHER | </p><p>Should we establish a new benchmark specifically for GGC. (sfink votes yes) | ||
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 | 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? | ||
Line 72: | Line 61: | ||
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>Risks | |||
Risks | |||
Team is responsible for many top crashers | 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> |
edits