Performance/Fenix: Difference between revisions

→‎Start up: Fix formatting
(→‎Performance testing: Prepend critical flows and add start up details)
(→‎Start up: Fix formatting)
Line 9: Line 9:
There are a few different types of start up: see [[#Terminology|Terminology]] for clarifications.
There are a few different types of start up: see [[#Terminology|Terminology]] for clarifications.


* COLD MAIN (to homescreen) start: the endpoints are process start and visual completeness (i.e. the homescreen is fully drawn). We believe the bottleneck is the main thread. A possibly important event for perceived performance is when the first frame is drawn
* COLD MAIN (to homescreen) start
** Neither endpoint is available in the profiler. Surrogates are <code>Application.onCreate</code> or <code>*Activity.onCreate</code> or the first frame is drawn (the last two have profiler markers)
**Endpoints: process start and visual completeness (i.e. the homescreen is fully drawn)
* WARM MAIN (to homescreen) start: the endpoints are <code>IntentReceiverActivity.onCreate</code> and visual completeness. See COLD MAIN for the bottleneck and other details
***Neither endpoint is available in the profiler. Surrogates are <code>Application.onCreate</code> or <code>*Activity.onCreate</code> to the first frame is drawn (the last two have profiler markers)
* COLD VIEW start: the endpoints are process start and <code>GeckoSession.load</code>. The bottleneck is unknown. A possibly important event for perceived performance is when the first frame is drawn
**Bottleneck: we believe it's the main thread
**The latter endpoint is available as a profiler marker
**Misc: a possibly important event for perceived performance is when the first frame is drawn
* WARM VIEW start:  
 
* WARM MAIN (to homescreen) start
**Endpoints: <code>IntentReceiverActivity.onCreate</code> and visual completeness.  
**Bottleneck: see COLD MAIN
**Misc: see COLD MAIN
 
* COLD VIEW start
**Endpoints: process start and <code>GeckoSession.load</code>
***The latter endpoint is available as a profiler marker
**Bottleneck: unknown
**Misc: a possibly important event for perceived performance is when the first frame is drawn
 
* WARM VIEW start
**Endpoints: <code>IntentReceiverActivity.onCreate</code> and <code>GeckoSession.load</code>
**Bottleneck: see COLD VIEW
**Misc: see COLD VIEW


In addition to these types of start up, there are many states/configurations a client can start up with: for example, they can have FxA set up or not set up, they may have 1000s or 0 bookmarks, etc. We haven't yet found any to have a significant impact on performance but, to be honest, we haven't yet to investigate deeply.
In addition to these types of start up, there are many states/configurations a client can start up with: for example, they can have FxA set up or not set up, they may have 1000s or 0 bookmarks, etc. We haven't yet found any to have a significant impact on performance but, to be honest, we haven't yet to investigate deeply.
Confirmed users
975

edits