Javascript:SpiderMonkey:ProjectGenerationGarbageCollection: Difference between revisions

Jump to navigation Jump to search
m
Undo revision 504696 by Wei Wu (talk)
No edit summary
m (Undo revision 504696 by Wei Wu (talk))
Line 1: Line 1:
<p>Objective: Implement Generational Garbage collection in Spider Monkey. &lt;Some goal based off V8 performance delta&#160;% on Earley Boyer benchmark&gt;
<p>Objective: Implement Generational Garbage collection in Spider Monkey. &lt;Some goal based off V8 performance delta&#160;% on Earley Boyer benchmark&gt;
</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] - &lt;ask jandem/djvj for an estimate&gt;
Baseline JIT [Bug 831507] - &lt;ask jandem/djvj for an estimate&gt;
</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 -&#160;??? weeks (start early) (bhackett)
Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable -&#160;??? 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>
4

edits

Navigation menu