Drupal has a presence problem when it comes to front end performance. Drupal has for the most part ignored front end performance. According to a study by Strangeloop, 97% of the time it takes a mobile page to render is in the front end. For desktop browser the front end makes up 85% of the time. These numbers may feel high. But, when pages take 500ms to render in Drupal but 6 seconds to display in an end users browser you can see where this comes from.
The presence problem for Drupal can be seen in several places:
- A the past few DrupalCons how many sessions have touched on front end performance? I can only recall one of them while there have been many covering memcache, apc, and other server side technologies.
- Take a look at the documentation pages on profiling Drupal. Or, search for documentation pages on performance. You'll find discussions about apache benchmark, learn about varnish, etc. You won't learn about font end performance.
- Drupal doesn't provide minified JavaScript. For production environments this is considered a standard practice.
- The Drupal 8 development "gates" RFC gives 1 of 6 performance items to font end performance. The other 5 are tips/gates in detail for back end issues we've commonly run into. The front end one is a basic one liner.
Front end performance is a big deal. This is more so true as we enter into the dominance of mobile where mobile devices are low powered and on high latency networks.
What We Can Do About It
Pointing out problems is no good without solutions. The problem is in the amount of face time front end performance gets. So, lets get it some face time.- At DrupalCamps let's start presenting on it.
- Drupal companies could benefit from having someone knowledge in house. Come up with ways to add it to your expertise. Maybe hold a book club and discuss a Steve Souders book.
- When we learn about useful tools like ImageOptim or Sprite Cow lets share them.
- If you see a contrib module serving JavaScript up that has not been minified file a patch. You can use UglifyJS easily through the web. UglifyJS is what jQuery uses.
Front end performance is a big deal. It’s the largest part of the performance equation an end user experiences. Companies have done studies showing the financial and usage impact of end user performance. Let’s elevate front end performance to the place it needs to be in the Drupal community.