DevTools/Planning/Performance/Details

From MozillaWiki
< DevTools‎ | Planning‎ | Performance
Revision as of 00:14, 6 November 2013 by Axel (talk | contribs) (Created page with "===Performance Overview=== To optimize the performance of an html5 and JS based web application, we need three general pieces of information, each of which requires slightly...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Performance Overview

To optimize the performance of an html5 and JS based web application, we need three general pieces of information, each of which requires slightly different tools:

1) What's slowing down execution
What it really comes down to is how well the application responds and flows. So we are basically looking for slowdowns in frame rates and looking for the root causes of those slow downs. Those root causes generally come from three sources:

  • a) Excessive DOM and graphical changes coming from JS execution
  • b) Excessive DOM and graphical changes coming from unoptimized HTML5 and CSS
  • c) Unoptimized JS code itself, i.e. the code just takes too long to run
  • d) Unoptimized JS execution (baseline versus ionmonkey)
  • e) Unoptimized garbage collection: if we keep releasing a lot of objects, GC will run more frequently

The right tooling will instrument as lightly as possible in order to minimize impact on performance and will provide a time-based view of execution.

2) What's increasing memory consumption


3) What's burning up too much CPU cycles



When it comes to CPU

   App time performance
   Live Frame rate visualization
   Frame rate in recordings
   Frame rate slow down root cause 
   JS
   'DOM/JS
   GC
   JS Execution
   slow JS execution / reveal hotspots
   unoptimized / non-jitted JS
   Memory
   recording heap memory profiles
   visualization
   DOM Fragment leaks
   short term leaks
   Heap snapshots