Platform/Features/Incremental GC

From MozillaWiki
Jump to navigation Jump to search
Please use "Edit with form" above to edit this page.

Status

Incremental garbage collection
Stage Landed
Status In progress
Release target Firefox 15
Health OK
Status note K9O requirement to enable on Desktop and Mobile

{{#set:Feature name=Incremental garbage collection

|Feature stage=Landed |Feature status=In progress |Feature version=Firefox 15 |Feature health=OK |Feature status note=K9O requirement to enable on Desktop and Mobile }}

Team

Product manager Asa Dotzler
Directly Responsible Individual David Mandelin
Lead engineer `
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Ioana Budnar
UX lead `
Product marketing lead `
Operations lead `
Additional members `

{{#set:Feature product manager=Asa Dotzler

|Feature feature manager=David Mandelin |Feature lead engineer=` |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=Ioana Budnar |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=` }}

Open issues/risks

Re-enable incremental GC on desktop platforms https://bugzilla.mozilla.org/show_bug.cgi?id=735099 Re-enable incremental GC on Android https://bugzilla.mozilla.org/show_bug.cgi?id=750959

Stage 1: Definition

1. Feature overview

We would like to be able to divide GC time into short increments. Overall, we would still spend the same amount of time doing GC, but each individual pause would be shorter. Doing this for the sweep phase is mostly a matter of scheduling. For the mark phase, we need a write barrier and we need an explicit mark stack.

See bug 641025 for more detail.

2. Users & use cases

With shorter GC pause times, games and other dynamic content on the web will have more tolerable pauses, and in some cases will go from having pauses that users notice to not having pauses that users notice.

3. Dependencies

`

4. Requirements

`

Non-goals

`

Stage 2: Design

5. Functional specification

`

6. User experience design

`

Stage 3: Planning

7. Implementation plan

`

8. Reviews

Security review

`

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

`

Operations review

`

Stage 4: Development

9. Implementation

`

Stage 5: Release

10. Landing criteria

` {{#set:Feature open issues and risks=Re-enable incremental GC on desktop platforms https://bugzilla.mozilla.org/show_bug.cgi?id=735099 Re-enable incremental GC on Android https://bugzilla.mozilla.org/show_bug.cgi?id=750959 |Feature overview=We would like to be able to divide GC time into short increments. Overall, we would still spend the same amount of time doing GC, but each individual pause would be shorter. Doing this for the sweep phase is mostly a matter of scheduling. For the mark phase, we need a write barrier and we need an explicit mark stack.

See bug 641025 for more detail. |Feature users and use cases=With shorter GC pause times, games and other dynamic content on the web will have more tolerable pauses, and in some cases will go from having pauses that users notice to not having pauses that users notice. |Feature dependencies=` |Feature requirements=` |Feature non-goals=` |Feature functional spec=` |Feature ux design=` |Feature implementation plan=` |Feature security review=` |Feature privacy review=` |Feature localization review=` |Feature accessibility review=` |Feature qa review=` |Feature operations review=` |Feature implementation notes=` |Feature landing criteria=` }}

Feature details

Priority P1
Rank 999
Theme / Goal `
Roadmap Firefox Desktop
Secondary roadmap Firefox Mobile
Feature list Desktop
Project Responsiveness
Engineering team JavaScript

{{#set:Feature priority=P1

|Feature rank=999 |Feature theme=` |Feature roadmap=Firefox Desktop |Feature secondary roadmap=Firefox Mobile |Feature list=Desktop |Feature project=Responsiveness |Feature engineering team=JavaScript }}

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-unnecessary `
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance Signed off on Aurora Test Plan
User experience ` `
Product marketing ` `
Operations ` `

{{#set:Feature products status=`

|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=sec-review-unnecessary |Feature security health=OK |Feature security notes=` |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=Signed off on Aurora |Feature qa notes=Test Plan |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}