6

One of the problems with Drupal in general is that it is slow. We run Pressflow 6 in a high traffic production environment and it consumes a lot of resources for a site of its size.

Much has been made of whether Drupal 7 is slower than Drupal 6: http://drupal.org/node/615822

It appears that this is indeed the case, but can anybody confirm?

Many thanks, Chris.

berkes
  • 26,996
  • 27
  • 115
  • 206
cjm2671
  • 18,348
  • 31
  • 102
  • 161

3 Answers3

7

Yes. I can confirm. However.

First the bad news:

  • Drupal7 core is more complex. Complexity costs performance.
  • Drupal7 core is bigger: more features, more in core. more equals slower.

Then the theory:

  • In Drupal6, approx. 95% of the projects included CCK. Call that Drupal+. Drupal7 comes with CCK out of the box. Drupal6+ is slower then Drupal7.
  • Drupal7 offers a lot of enterpris-ish abilities for performance tuning. Memcached, (Varnished)Proxy support, Database balancing (master/slave etc). Something that Drupal6 could not do.

However, Drupal6 pressflow had these enterprise-ish things build in (in fact: these pressflow features made it into core, offering the basis for Drupal7).

Drupal7 is slower then Pressflow Drupal6. Drupal7 offers performance features that Drupal6 did not offer, but that PressflowDrupal6 did offer.

Many projects also have views module enabled. Views3 in Drupal7 offer a lot of performance improvements (enterprise-ish features) over Views2 for Drupal6.

My advice: untill there is a performance-optimised Drupal7 (Pressflow Drupal7, for example) Just stay with your Pressflow Drupal 6. It is in both theory and practice a lot faster. If you can benefit from the Views3 improvements and features, then go for Drupal7+views3, that will give you more options to tune performanceissues.

berkes
  • 26,996
  • 27
  • 115
  • 206
  • @berkes Small correction: Drupal7 ships with Fields, not CCK, which is still being developed as a module. – Su' Feb 06 '11 at 17:25
  • Indeed, that is semantically more correct :). Makes me wonder what the reasoning behind continuous development of CCK is, though. – berkes Feb 07 '11 at 09:24
  • Well, see http://drupal.org/project/cck. Upgrade path + some helper functions. Everything else is either in core or has been moved to separate projects (references, access permissions, ...) – Berdir Feb 07 '11 at 12:44
  • @berkes Not that I want to downplay your answer or anything, but can you please provide any sources for those 'facts' that you mentioned? ie benchmarks, drupal.org posts, etc. Thank you. – amateur barista May 10 '11 at 15:48
  • 1
    @amateur barista: mostly based on inhouse becnhmarks. But I have added some online resources too. – berkes May 11 '11 at 08:27
  • @berkes 1+ for making your answer more awesome. Also, those benchmarks are three years old! That's a lot of time, I'd be interesting to see how the current Drupal 7 holds up against Pressflow 6. – amateur barista May 16 '11 at 21:23
  • One thing Drupal 7 has that Drupal 6 definitely didn't is Entity Cache, which provides persistent caching as well as static caching for core objects like nodes. Drupal 6 only supports static caching for these objects. In my experience across a range of projects, the pages that go the slowest are often those with a lot of node_load() calls or similar, so you can get a large performance gain by avoiding that overhead. You'll probably find that D7 is slower out of the box but provides more tools to speed it up when you're doing your profiling and optimization over time. – David Meister Dec 13 '12 at 01:28
  • 1
    I'd also like to mention that saying "Complexity costs performance" is just not true. The whole concept of a caching layer in an application is added complexity but it improves performance. There are many simple concepts that are *slow* and complicated concepts that are fast because the complexity adds specialization that improves performance for specific tasks. – David Meister Dec 13 '12 at 01:41
6

Depends.

Yes, out of the box, D7 is slower than D6. But a lot of effort has been put into making it scale (Which is a different thing than being performant).

Many of these features are actually already part of Pressflow 6 like support for master/slave database cluster, proxy, improvements to alias handling and so on. So that doesn't help you much.

But there are also features which did not exist there, for example the pluggable field storage that allows you to store all your fields in MongoDB for example. Also, while D7 in general is slower, the queries have been improved a lot and the bottleneck basically moved from the database to PHP, which is easier to cluster.

After all, D7 is able to power sites like http://examiner.com :) And they explicitly chose D7 over D6 for scalability improvements like MongoDB integration.

Berdir
  • 6,881
  • 2
  • 26
  • 38
  • 1
    This answer is probably better than the accepted answer as it doesn't overgeneralize by saying things like "complex = slow" and it addresses the difference between scalability and speed. – David Meister Dec 13 '12 at 01:43
1

I think it is hard to tell which one is faster or slower. Drupal 7 just see everything as entity. But one thing I notice by drupal profiling https://drupal.org/project/profiling is Drupal 7 panel is extremely slow. So I suggest we always go with templates.

Danny Beckett
  • 20,529
  • 24
  • 107
  • 134
wel3kxial
  • 11
  • 1