newrelic / developer-website

Source code for the New Relic Developer Site.
https://developer.newrelic.com
Apache License 2.0
40 stars 114 forks source link

Investigate Light House performance issues #795

Closed jpvajda closed 4 years ago

jpvajda commented 4 years ago

When running a lighthouse test found in Chrome Developer Tools, the test reported very poor performance for developer.newrelic.com opensource.newrelic.com

Steps to reproduce

CLI: https://github.com/GoogleChrome/lighthouse

  1. Open Chrome Browser in incognito mode
  2. Open the developer tools
  3. under the light house tab click on generate report.
  4. Review results

developer site

Screen Shot 2020-09-28 at 5 32 23 PM

opensource site

Screen Shot 2020-09-28 at 5 31 02 PM
jpvajda commented 4 years ago

New reports as of Oct 23...

Developer

Screen Shot 2020-10-23 at 11 30 28 AM

OSS

Screen Shot 2020-10-23 at 11 30 20 AM
caylahamann commented 4 years ago

Findings

Numbers are different for Mobile and Desktop

Mobile

Screen Shot 2020-11-10 at 11 23 01 AM

Desktop

Screen Shot 2020-11-10 at 11 22 25 AM

There are some main culprits for lower performance

Amplify Cache Policy

Loading of NR1 Assets

Loading of other assets

Further optimizations

We could use a library called Guess.js to load our assets conditionally. Guess.js is able to determine which leverages Google Analytics data and machine learning to determine which pages a user is most likely to navigate to from the current page and only preload those resources.

caylahamann commented 4 years ago
caylahamann commented 4 years ago

Made follow up tickets in #954 #953 #952

jpvajda commented 4 years ago

@caylahamann thanks for all the work here, it's great to know what the root problems are on the performance lighthouse metric.

Tessen will eventually need to be used on the developer , oss and docs site, but i'm not sure how we are interacting with that service now, as we didn't finish the integration with it.

Bizable is used for marketing metrics, specifically tracking customer journey and was implemented on this issue: https://github.com/newrelic/developer-website/issues/803