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 guidelines
 * Performance profiling for Wikimedia code
 * 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?
 * 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)