Browser load and JavaScript research

Rough notes on Browser load concerns, and Clientside-JavaScript (?) questions.

Immediate to-do:
 * Add overall-areas and questions that we should investigate now
 * Add Specific metrics (time? memory?) we should track over the long-term.
 * Add Links, if we're already are doing [some/all] of this somewhere
 * Fix my terrible terminology misuses. :-) Very {Draft}. Please edit mercilessly.

End goal:
 * To-do lists for analytics & developers
 * Explanations for a lay-audience

Background
Over the years, and recently in person at Wikimania, I've heard comments that all the new (and accumulated old) tools/extensions/gadgets/etc, were making the client-side impact quite heavy, and the site more frustrating to use. Particularly for users with older hardware, or restricted corporate software-setups (old browsers), or poor-quality (erratic) internet connections.

Existing stats and research

 * Something something graphite something?
 * Performance/Guides/Backend performance practices
 * Site performance and architecture
 * Architecture Summit 2014/Performance

Questions and Ideas for things to investigate or monitor
Ranked lists, in order of "Foo that causes the most page-load increase"
 * Which preferences?
 * Which gadgets?
 * For example, syntax highlighting is fairly expensive, and the gadget is turned on by default at the Kannada Wikipedia (as of August 2016).
 * Which extensions?
 * Which lines in site.js?
 * Which mediawiki-core features?

What are average page-loads for:
 * anon user
 * logged-in user, with default preferences
 * logged-in user, with the 10 most popular Gadgets enabled

How does that change, given:
 * Connection quality:
 * broadband-connection,
 * erratic connection,
 * low-bandwidth-connection
 * Browser variants (safari/chrome/firefox/IE/Opera)
 * Old Hardware (old processor, small amounts of RAM, etc)

Why do some sites (like Trello) cause the browser to become sluggish when multiple tabs to it are open, and are we avoiding those problems?
 * Hypothesis: The entire interface appears to be generated in JS upon page-load, and reflows/repaints the page for every card.

Desired outcomes

 * Metrics. (bosses love metrics)
 * Shiny graphs. (users love plummet/soaring graphs)
 * long-term tracking.  (devs love tracking)
 * devs fixing the worst culprits. (priorities)
 * better understanding for everyone, technical and non. (What we're here for)
 * ponies.  (tradition)