Marketplace/Performance optimization: Difference between revisions
No edit summary |
(added banner) |
||
(15 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This is a page to aggregate information about Marketplace performance efforts | {{Marketplace_banner}} | ||
This is a page to aggregate information about Marketplace performance efforts. | |||
== Current Status == | |||
Via webpagetest from a non-US country shows: | |||
# More than one second is spent just to get '/'. Part of this is because we don't have OSCP stapling, so the initial TLS request is very slow. {{Bugzilla|1011152}} was effectively wontfixed by ops (not much we can do about it). | |||
# Another second and a half is necessary to load our 2 main CSS files (splash.css, include.css). | |||
# Another second is necessary to load our JavaScript. (Note: at this point, we're at the 4 seconds mark and we haven't started requesting the API endpoint. In a packaged app, all this would have been loaded from the package almost instantaneously.) | |||
# Then we have a bunch of images, svg, fonts from the CSS loading in //. (This would also be part of the packaged app.) | |||
# Then we see the request the the API takes 2.5s (working on this now) | |||
# Then we start rendering. Marketplace is usable at this point (8 seconds passed) | |||
# Then we start loading the app images, and there are a lot of them. | |||
All that was on a cable connection, on a desktop. It's going to be worse on mobile. | |||
== Want to contribute? == | == Want to contribute? == | ||
Log new bugs [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody@mozilla.org&bug_status=NEW&cc=ddurst@mozilla.com&contenttypemethod=autodetect&contenttypeselection=text/plain&form_name=enter_bug&keywords=perf&priority=--&product=Marketplace in Bugzilla, | Log new bugs [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody@mozilla.org&bug_status=NEW&cc=ddurst@mozilla.com&contenttypemethod=autodetect&contenttypeselection=text/plain&form_name=enter_bug&keywords=perf&priority=--&product=Marketplace in Bugzilla, block 'marketplace-perf'] | ||
Ask about things in #marketplace. | Ask about things in #marketplace. | ||
== Mitigation strategies == | == Mitigation strategies == | ||
The short version is that we need to optimize things that should be optimized regardless of other constraints (device constraints, network constraints, etc). Only then can we differentiate between strategic investment and Doing Things The Right Way. | The short version is that we need to optimize things that should be optimized regardless of other constraints (device constraints, network constraints, etc). Only then can we differentiate between strategic investment and Doing Things The Right Way. | ||
At a high level, these are the strategies being considered: | At a high level, these are the strategies being considered for marketplace.firefox.com: | ||
# [https://bugzilla.mozilla.org/show_bug.cgi?id=900241 Feature/Memory/Device detection (reliable) (900241)] | # [https://bugzilla.mozilla.org/show_bug.cgi?id=900241 Feature/Memory/Device detection (reliable) (900241)] | ||
# Speed and Performance bugs, general at this point (see below) | # Speed and Performance bugs, general at this point (see below) | ||
## Establish target benchmarks & KPIs for performance | ## Establish target benchmarks & KPIs for performance | ||
# | # Front and Back-end Performance adjustments (pending benchmark results -- currently the mark is "as fast as possible") | ||
# | Tarako-specific: | ||
# | # new "low resource" packaged app (implemented) | ||
# | # Filtering apps for "low resource" device (implemented) | ||
# UI updates to accommodate RTL & other local language requirements (pending) | |||
'''Note:''' We now have the ability to do [https://rpm.newrelic.com/accounts/315282/dashboard/5293009 NewRelic/ElasticSearch deep debugging] | |||
== Open issues == | == Open issues == | ||
<b>These are immediate | <b>These are immediate issues:</b> | ||
* [https://github.com/mozilla/persona/issues/4105 There is an open github issue with Persona about ETags... closed (but not resolved) on 2014/10/31] | |||
* [https://github.com/mozilla/persona/issues/4105 There is an open github issue with Persona] | |||
<b>These are future issues:</b> | <b>These are future issues:</b> | ||
* Related, [https://bugzilla.mozilla.org/show_bug.cgi?id=983502 having the feature detection API (983502)] as [https://bugzilla.mozilla.org/show_bug.cgi?id=900241 originally described] -- this isn't a Marketplace bug, so we're implementing something else for 1.3 and hope to have this for 1.4, 1.5 at the latest. | * Related, [https://bugzilla.mozilla.org/show_bug.cgi?id=983502 having the feature detection API (983502)] as [https://bugzilla.mozilla.org/show_bug.cgi?id=900241 originally described] -- this isn't a Marketplace bug, so we're implementing something else for 1.3 and hope to have this for 1.4, 1.5 at the latest. | ||
== | == Bugs == | ||
Tracking bug: {{Bugzilla|1075278}}. | |||
<bugzilla> | |||
{ "blocks": ["1075278"], "status": ["UNCONFIRMED", "ASSIGNED", "NEW", "REOPENED"] } | |||
</bugzilla> | |||
The following bugs have been identified as delivering good performance increases; they are grouped here for ease of consideration. | |||
Note that not all of these are Marketplace bugs, and thus not all are in the priority groupings at the bottom of the page. | Note that not all of these are Marketplace bugs, and thus not all are in the priority groupings at the bottom of the page. | ||
=== overall speed === | === overall speed === | ||
* {{Bugzilla|871683}} (wontfix, Server Ops) Note: thus far, SPDY tests have not demonstrated substantial improvements, in part due to system configuration aspects outside of our control. However, these tests were run on the current Marketplace app, which is basically an iframe wrapper. SPDY tests may be more straightforward on the Tarako Marketplace, but as that app is fully packaged it may be irrelevant. | |||
* {{Bugzilla|871683}} | |||
=== improve API response time === | === improve API response time === | ||
* {{Bugzilla| | * {{Bugzilla|988557}} (wontfix) | ||
* {{Bugzilla| | * {{Bugzilla|989181}} | ||
* {{Bugzilla| | * {{Bugzilla|991955}} | ||
=== improve caching techniques === | === improve caching techniques === | ||
* {{Bugzilla| | * {{Bugzilla|957383}} | ||
* {{Bugzilla|985291}} | * {{Bugzilla|985291}} | ||
* {{Bugzilla|985292}} | * {{Bugzilla|985292}} | ||
* {{Bugzilla|985293}} | * {{Bugzilla|985293}} | ||
* {{Bugzilla|985804}} | |||
=== optimize asset delivery === | === optimize asset delivery === | ||
* {{Bugzilla| | * {{Bugzilla|874999}} (wontfix) | ||
* {{Bugzilla|987851}} (wontfix) | |||
* {{Bugzilla| | * {{Bugzilla|988674}} | ||
* {{Bugzilla| | |||
=== optimize synchronous delivery === | === optimize synchronous delivery === | ||
Line 73: | Line 82: | ||
* {{Bugzilla|897156}} -- ... becoming a real packaged app. | * {{Bugzilla|897156}} -- ... becoming a real packaged app. | ||
== General performance bugs (potentially obsolete) == | |||
== | |||
This is a listing of Marketplace bugs only, by priority. If a priority has not been applied, you will have to find it directly. [https://bugzilla.mozilla.org/buglist.cgi?priority=--&keywords=perf&keywords_type=allwords&list_id=9800214&resolution=---&query_format=advanced&product=Marketplace Here's a good place to start] | This is a listing of Marketplace bugs only, by priority. If a priority has not been applied, you will have to find it directly. [https://bugzilla.mozilla.org/buglist.cgi?priority=--&keywords=perf&keywords_type=allwords&list_id=9800214&resolution=---&query_format=advanced&product=Marketplace Here's a good place to start] | ||
== Performance data dashboards == | |||
* [https://metaplace.paas.allizom.org/apikiosk/ API Speed dashboard] | * [https://metaplace.paas.allizom.org/apikiosk/ API Speed dashboard] | ||
* [http://eideticker.mozilla.org/b2g/#/inari/b2g-marketplace-startup/timetostableframe Time to full display of Marketplace app (warm)] | * [http://eideticker.mozilla.org/b2g/#/inari/b2g-marketplace-startup/timetostableframe Time to full display of Marketplace app (warm)] | ||
* [http://dashboard.mktadm.ops.services.phx1.mozilla.com/graphite-api (VPN required) ops level dashboard] | * [http://dashboard.mktadm.ops.services.phx1.mozilla.com/graphite-api (VPN required) ops level dashboard] |
Latest revision as of 02:32, 1 April 2016
This is a page to aggregate information about Marketplace performance efforts.
Current Status
Via webpagetest from a non-US country shows:
- More than one second is spent just to get '/'. Part of this is because we don't have OSCP stapling, so the initial TLS request is very slow. 1011152 was effectively wontfixed by ops (not much we can do about it).
- Another second and a half is necessary to load our 2 main CSS files (splash.css, include.css).
- Another second is necessary to load our JavaScript. (Note: at this point, we're at the 4 seconds mark and we haven't started requesting the API endpoint. In a packaged app, all this would have been loaded from the package almost instantaneously.)
- Then we have a bunch of images, svg, fonts from the CSS loading in //. (This would also be part of the packaged app.)
- Then we see the request the the API takes 2.5s (working on this now)
- Then we start rendering. Marketplace is usable at this point (8 seconds passed)
- Then we start loading the app images, and there are a lot of them.
All that was on a cable connection, on a desktop. It's going to be worse on mobile.
Want to contribute?
Log new bugs in Bugzilla, block 'marketplace-perf'
Ask about things in #marketplace.
Mitigation strategies
The short version is that we need to optimize things that should be optimized regardless of other constraints (device constraints, network constraints, etc). Only then can we differentiate between strategic investment and Doing Things The Right Way.
At a high level, these are the strategies being considered for marketplace.firefox.com:
- Feature/Memory/Device detection (reliable) (900241)
- Speed and Performance bugs, general at this point (see below)
- Establish target benchmarks & KPIs for performance
- Front and Back-end Performance adjustments (pending benchmark results -- currently the mark is "as fast as possible")
Tarako-specific:
- new "low resource" packaged app (implemented)
- Filtering apps for "low resource" device (implemented)
- UI updates to accommodate RTL & other local language requirements (pending)
Note: We now have the ability to do NewRelic/ElasticSearch deep debugging
Open issues
These are immediate issues:
These are future issues:
- Related, having the feature detection API (983502) as originally described -- this isn't a Marketplace bug, so we're implementing something else for 1.3 and hope to have this for 1.4, 1.5 at the latest.
Bugs
Tracking bug: 1075278.
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
The following bugs have been identified as delivering good performance increases; they are grouped here for ease of consideration.
Note that not all of these are Marketplace bugs, and thus not all are in the priority groupings at the bottom of the page.
overall speed
- 871683 (wontfix, Server Ops) Note: thus far, SPDY tests have not demonstrated substantial improvements, in part due to system configuration aspects outside of our control. However, these tests were run on the current Marketplace app, which is basically an iframe wrapper. SPDY tests may be more straightforward on the Tarako Marketplace, but as that app is fully packaged it may be irrelevant.
improve API response time
improve caching techniques
optimize asset delivery
optimize synchronous delivery
- 847679 -- this one is big, mostly because it depends on...
optimize first run
- 897156 -- ... becoming a real packaged app.
General performance bugs (potentially obsolete)
This is a listing of Marketplace bugs only, by priority. If a priority has not been applied, you will have to find it directly. Here's a good place to start