Performance/Project Candle

From MozillaWiki
< Performance
Revision as of 02:36, 10 September 2015 by Kats (talk | contribs) (Fix copypasta)
Jump to navigation Jump to search

Project Candle aims to reduce the power consumption of Firefox (on desktop and mobile) and Firefox OS, in order to increase battery life for users on mobile devices. Some reductions in power consumption will also help improve performance, such as those that reduce CPU usage.

Project Candle is a Platform Engineering initiative that aims to extend and complement existing work relating to power consumption within Mozilla.

Mailing list

The Project Candle mailing list will be called dev-power.

Instead of having regular face-to-face meetings, this list will serve as the central point of contact for all discussions and bug triaging for Project Candle. While having no face-to-face meetings does reduce the immediacy of discussion, we hope this will be outweighed by other advantages.

First, given that the reduction of power consumption potentially requires people with expertise in many parts of the codebase, it is important to avoid excluding anybody. A mailing list achieves this in the following ways.

  • Nobody needs to miss discussion due to being permanently in a particular timezone.
  • Nobody needs to miss discussion due to being temporarily unavailable at a particular time.
  • It's easy to "lurk", i.e. follow along in a low-commitment fashion.

Second, there are some practical benefits.

  • All discussions are permanently archived.
  • Fewer meetings for everybody.

If you are interested in helping or even just following progress, joining the mailing list is the single best thing you can do.

IRC

The #power channel is for discussions relating to power consumption.

Bug triage and tracking

Bugs are prioritized via periodic triage threads on the mailing list. These threads will have a title such as "Project Candle bug triage (7th September 2015)". The triage manager (currently nnethercote) will initiate these threads, listing each bug, asking relevant questions, and suggesting priorities. A few days later, after discussion has occurred, the triage manager will update the bugs appropriately.

If you want a bug that is related to power usage to be triaged on the mailing list, add "[Power]" to the bug whiteboard. After prioritization, this whiteboard marking will be changed to one of "[Power:P1]", "[Power:P2]", "[Power:P3]" or "[Power:meta]". The meaning of these markings, and links to all such bugs, is as follows.

  • Unprioritized Power bugs. These are prioritized regularly on the mailing list.
  • Power:P1 bugs. Once prioritized, these will be revisited and discussed occasionally on the mailing list. We will try to keep the number of such bugs small and constant, e.g. a dozen or so.
  • Power:P2 bugs. Once prioritized, these will be revisited and discussed rarely on the mailing list. P2 is the default priority.
  • Power:P3 bugs. Once prioritized, these are unlikely to be revisited and discussed again on the mailing list.
  • Power:meta bugs. Once prioritized, these will be revisited and discussed occasionally on the mailing list.

Some other interesting bug lists that overlap with the ones above.

There is also a "power" keyword in Bugzilla, but this won't be used by Project Candle because the whiteboard annotations described above are more flexible.

Documentation and Tools

The "Power profiling" section of the MDN performance page has a link to a power profiling overview document that introduces many concepts relevant to power profiling. That section also has links to a number of other documents that describe tools that can be used for power profiling.

Progress tracking

We will need to set up some kind of automated system for tracking power consumption. This will let us measure progress and also detect regressions.

There are several open questions relating to this.

  • Which platforms? (Note that dedicated hardware is best for power consumption measurement, because a lot of the tools do system-wide measurements.)
  • Which other browsers do we compare with?
  • Which metrics do we use?
  • What workloads do we test?

For Firefox, Roberto Vitillo's Energia dashboard may serve as a good starting point. (Note that this dashboard has not been updated in over a year and so its actual data should be ignored at this time.)

For Firefox OS there are already current measurements being made and fed into Raptor.