Performance/Fenix: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Create page w/ defense filled out.)
 
(→‎Defense: add WIP header)
Line 10: Line 10:
** We are Code Owners for a few files
** We are Code Owners for a few files


==== WIP ====
We're working on adding:
We're working on adding:
* Regression testing per master merge ([https://github.com/mozilla-mobile/perf-frontend-issues/issues/162 issue])
* Regression testing per master merge ([https://github.com/mozilla-mobile/perf-frontend-issues/issues/162 issue])

Revision as of 20:29, 5 October 2020

Performance can be thought in terms of "Offense" – the changes that you make to actively improve performance – and "Defense" – the systems you have in place to prevent performance regression's (this offense/defense idea from this blog post).

App start up

Defense

The FE perf team has the following measures in place to prevent regressions:

  • Show long term start up trends with Nightly performance tests (note: these are not granular enough to practically identify & fix regressions)
  • Prevent main thread IO with:
    • StrictMode crashing in debug builds on disk or network IO on the main thread
  • Code added to the start up path should be reviewed by the performance team:
    • We are Code Owners for a few files

WIP

We're working on adding:

  • Regression testing per master merge (issue)
  • Prevent main thread IO with:
    • Tests to prevent suppression of StrictMode without discussion (issue)
    • Static analysis to prevent runBlocking, which can circumvent StrictMode (issue)
  • Code added to the start-up path should be reviewed by the performance team:
    • We're investigating other files that can be separated so we can be code owners for the start up parts (issue)
  • Minimize component initialization with:
    • Avoid unnecessary initialization (issue)
  • Prevent unnecessarily expensive UI with:
    • NestedConstraintLayout static analysis (issue)

Offense

TODO: improve this section, if useful (let us know if it is)

We're keeping a list of the biggest known performance improvements we can make. Also, we have a startup improvement plan.