Javascript:SpiderMonkey:ProjectGenerationGarbageCollection: Difference between revisions

Jump to navigation Jump to search
Line 17: Line 17:
== Steps ==
== 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) - done
 
#** Still need to unhide it for inbound - get it green, keep it green
* Rooting Analysis on TinderBox (sfink) - done
#* Get the root analysis build green - two weeks?
** Still need to unhide it for inbound - get it green, keep it green
#** Get jit-tests green {{bug|745742}}
* Get the root analysis build green - two weeks?
#** Get js ref tests green  
** Get jit-tests green {{bug|745742}}
#** Get jsapi-tests green {{bug|831376}}
** Get js ref tests green  
#* Rooting analysis fuzz bugs {{bug|773746}}
** Get jsapi-tests green {{bug|831376}}
#** Rely on static analysis to make this not be a whack-a-mole game
* Rooting analysis fuzz bugs {{bug|773746}}
#* Remove E4X - done
** Rely on static analysis to make this not be a whack-a-mole game
#* Do something about JSD
* Remove E4X - done
#* Add exact roots to stack structures - 2 weeks
* Do something about JSD
#* AddRoot/RemoveRoot for Heap structures - 4 weeks
* Add exact roots to stack structures - 2 weeks
#* Static code analysis {{bug|831409}}
* AddRoot/RemoveRoot for Heap structures - 4 weeks
#** Fix all discovered rooting hazards (~800) (sfink,jonco) - 4 weeks
* Static code analysis {{bug|831409}}
#** Optimize all discovered over-rooting (~100)
** Fix all discovered rooting hazards (~800) (sfink,jonco) - 4 weeks
#** Automate static analysis {{bug|834912}} (sfink)
** Optimize all discovered over-rooting (~100)
#*** Need a server (dm-sixgill01?)
** Automate static analysis {{bug|834912}} (sfink)
#*** http://people.mozilla.org/~sfink/rootingHazards.txt
*** Need a server (dm-sixgill01?)
#*** http://people.mozilla.org/~bhackett/gcFunctions.html
*** http://people.mozilla.org/~sfink/rootingHazards.txt
# JIT Integration with post barriers - 4 weeks, parallelized
*** http://people.mozilla.org/~bhackett/gcFunctions.html
#* IonMonkey {{bug|831506}} - 1 week (bhackett)
 
#* JaegerMonkey {{bug|764876}} - 2 days (bhackett)
=== JIT Integration with post barriers - 4 weeks, parallelized ===
#* Baseline JIT {{bug|831507}} - <ask jandem/djvj for an estimate>
 
# Generational Garbage Collection in the Shell
* IonMonkey {{bug|831506}} - 1 week (bhackett)
#* Implement prototype algorithm (terrence) - 1 week
* JaegerMonkey {{bug|764876}} - 2 days (bhackett)
#* This is a potential milestone: we would need to build it and test it on TBPL similar to how |r| works now -- |GGCJS|.
* Baseline JIT {{bug|831507}} - <ask jandem/djvj for an estimate>
#* Re-implement HashTable rekeying
 
#** We undid this code because it was a perf regression and was still a bit buggy. (terrence) - 3 weeks
=== Generational Garbage Collection in the Shell ===
#** at least part of this is {{bug|726687}}
 
# Exactly Root the Browser {{bug|831379}} - 10 weeks
* Implement prototype algorithm (terrence) - 1 week
#* 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 need to build it and test it on TBPL similar to how |r| works now -- |GGCJS|.
# Performance Tuning - 4 weeks (This should probably start asap)
* Re-implement HashTable rekeying
#* Implement a Nursery {{bug|706885}} - 1 week
** We undid this code because it was a perf regression and was still a bit buggy. (terrence) - 3 weeks
#* Test against V8 Earley-Boyer benchmark.
** at least part of this is {{bug|726687}}
#** Also v8 deltablue, raytrace
 
#* We may need to Implement Bill’s Pools/Zones idea to get the nursery to the requisite perf {{bug|759585}} - 6 weeks
=== Exactly Root the Browser {{bug|831379}} - 10 weeks ===
#* Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable - ??? weeks (start early) (bhackett)
 
# Make the Post Barrier Verifier Green in the browser {{bug|764882}}
* 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.
#* Investigate how long it will take to do generational barriers - 1 week
 
#* We may need to rewrite the maps in xpconnect and the browser in terms of HashTable: this could be a bunch of work.  
=== Performance Tuning - 4 weeks (This should probably start asap) ===
#* Make JS_IsAboutToBeFinalized indirect {{bug|765432}} - 10 weeks
 
* Implement a Nursery {{bug|706885}} - 1 week
* Test against V8 Earley-Boyer benchmark.
** Also v8 deltablue, raytrace
* We may need to Implement Bill’s Pools/Zones idea to get the nursery to the requisite perf {{bug|759585}} - 6 weeks
* Refactor code to avoid rooting on hot paths and keep rooter overhead acceptable - ??? weeks (start early) (bhackett)
 
=== Make the Post Barrier Verifier Green in the browser {{bug|764882}} ===
 
* Investigate how long it will take to do generational barriers - 1 week
* 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


== Other ==
== Other ==
Confirmed users
328

edits

Navigation menu