Drupal - Are there any performance comparisons?

No, there is no reliable comparison, because doing that is almost impossible. There are various reasons for that, one is that D8 vanilla is like D7 vanilla + a whole bunch of modules, especially views.

If you compare a single request on a vanilla installation, then D8 is clearly slower than D7 (even if you add views), quite a bit actually. That might still improve more or less until the release, but it's not going turn around completely.

D8 is just running a lot more code, our own and vendor code like symfony underneath, so that takes more time. The service container also adds quite a bit of overhead.

However, D8 has a number of things that are hopefully going to make more than up for that on real sites

  • Javascript by default runs in the footer, which improves front-end performance, as pages build up faster and you can see and use them earlier.
  • The highly improved caching, especially render caching with cache tags and contexts, means that caches on real sites with changing content will perform much better. In D7, every time a node was changed or created, the complete block and page cache were invalidated. In D8, thanks to cache tags, D8 knows where that node shows up and might show up and only has to invalidate the relevant pieces. There's still a lot of work going on to improve that, but D8 provides a lot more tools to build faster big sites.
  • There's also the argument that you would have to run D7 on hardware that is as old as that version while running D8 on modern hardware, which is considerably faster. Also, early benchmarks show that vanilla D8 runs up to 50% faster with PHP7, because that version is much better at running a lot of code fast. (You can also run D7 on modern hardware and with PHP7 (probably), so that argument only works so far...)
  • Thanks to those decoupled services and better API's, which in a first step make things slower, is D8 going to have much better support for running partially/completely (depending on how daring you are I guess) with MongoDB and other alternative backends (like redis for the key value store). Again, for big sites, that allows to take at least part of the load away from MySQL, and store parts of your data (or, again, everything) elsewhere, which in turn helps to distribute the load across multiple servers.

Also keep in mind, if you care about performance, then you're very likely not running vanilla D7/D8 sites, you have large sites with a lot of content. And as mentioned above, D8 brings a lot of tools to help you to make those kind of sites faster. Some things will require work as a developer and need to be done right (just like in D7), but if you do, then I think that D8 can perform pretty well in real world scenarios.


There are a bunch of patches for D8 that should land before it is released. This presentation at the 2015 LA DrupalCon should explain what is happening to make sure D8 is fast.

See here for an example of one of the patches that is being worked on right now was committed.

See the issue queue for most of the open issues in terms of D8 performance improvements.


Drupal 8 can run on MongoDB alone and the speed is surprising. Stay tuned, I will post more as I go forward with the integration, it all should clear in three months by DrupalCon Los Angeeles.

Tags:

Performance

8