BigPipe finds its way into Drupal 8.1 core

Drupal 8 has been known to be slightly slower then its predecessor. But given the fact that it is more complex and so many modules added to core, it would be forgiven to suffer a bit on the perfomance side.

This is why BigPipe is a huge welcome feature since Views to be incorporated into Drupal 8.x core.

How BigPipe works

To exploit the parallelism between web server and browser, BigPipe first breaks web pages into multiple chunks called pagelets. Just as a pipelining microprocessor divides an instruction’s life cycle into multiple stages (such as “instruction fetch”, “instruction decode”, “execution”, “register write back” etc.), BigPipe breaks the page generation process into several stages:
 

  1. Request parsing: web server parses and sanity checks the HTTP request.
  2. Data fetching: web server fetches data from storage tier.
  3. Markup generation: web server generates HTML markup for the response.
  4. Network transport: the response is transferred from web server to browser.
  5. CSS downloading: browser downloads CSS required by the page.
  6. DOM tree construction and CSS styling: browser constructs DOM tree of the document, and then applies CSS rules on it.
  7. JavaScript downloading: browser downloads JavaScript resources referenced by the page.
  8. JavaScript execution: browser executes JavaScript code of the page.

[Taken from https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919/]

 

BigPipe in Drupal 8

Currently, BigPipe for Drupal is still an experimental module but the results have been positive so far. So expect it to get even better when it reaches a stable release.