Development of Drupal 8 has reached a maturity level whereby alpha versions have been released. Naturally, I was curious to know how Drupal 7 and Drupal 8 compare performance wise, so I first googled it and found that Yannis Karampelas had done a comparison in June of 2013. Drupal 8 has matured considerably since that comparison, prompting me to complete my own performance comparison using the latest builds.

Since the number of modules enabled by default on both systems are different, I also did a test with particular modules enabled on Drupal 7 (more details below).

The performance comparison tests were run on:

  • MacBook Pro 2.3 GHz Intel Core i7 (Quad Core)
  • 16 GB of RAM
  • OSX 10.9.2 (Mavericks)
  • PHP 5.4.26
  • MySQL 5.1.68
  • Drupal 7.26 (January 15th, 2014)
  • Drupal 8 alpha10 (March 19th, 2014)

I used Apache Benchmark to run the performance test. I made 1000 requests with a concurrency level of 20 for each case (-n 1000 -c 20). Two types of tests were run, they were:

  • Requesting the front page for an anonymous user.
  • Login with administrator credentials.

For each case the ab test was run 5 times; I then took the highest number from the results.

The above two types of tests were run on 3 different environments, they were:

  1. Drupal 8 (Standard out of the box)
  2. Drupal 7 (Standard out of the box)
  3. Drupal 7 with the following modules installed and enabled (these are standard in Drupal 8). I only added a selected few modules instead of trying to match each and every module between Drupal 7 and Drupal 8.
  • breakpoints, ctools, ckeditor, contact, edit, libraries, entity, views, views_ui

Following are details of the comparison:

Anonymous user
 Drupal 7 (Requests per sec)Drupal 7 with extra modules (Requests per sec)Drupal 8(Requests per sec)
No caches enabled44.4438.6714.34
APC enabled (shm_size=64)164.61150.4030.00
  • APC enabled
  • Page cache maxium age=1 min (Drupal 8)
  • Use internal page cache (Drupal 8)
  • Cache pages for anonymous users (Drupal 7)
  • Minimum cache lifetime=1 min (Drupal 7)
1185.811152.53362.91
  • Page cache maxium age=1 min (Drupal 8)
  • Use internal page cache (Drupal 8)
  • Cache pages for anonymous users (Drupal 7)
  • Minimum cache lifetime=1 min (Drupal 7)
414.20315.95115.06
    
    
Login as administrator
 Drupal 7 (Requests per sec)Drupal 7 with extra modules (Requests per sec)Drupal 8(Requests per sec)
No caches enabled44.2737.0917.71
APC enabled (shm_size=64)161.34143.3937.55
  • APC enabled
  • Page cache maxium age=1 min (Drupal 8)
  • Use internal page cache (Drupal 8)
  • Cache pages for anonymous users (Drupal 7)
  • Minimum cache lifetime=1 min (Drupal 7)
160.77145.0837.53
  • Page cache maxium age=1 min (Drupal 8)
  • Use internal page cache (Drupal 8)
  • Cache pages for anonymous users (Drupal 7)
  • Minimum cache lifetime=1 min (Drupal 7)
44.1938.0117.55
    
    

 

As you can see in my results, the performance regression still remains. I am hoping in few more months, once the beta versions start getting released, the performance will improve.

If you have conducted performance tests related to Drupal I would be interested in looking at the results; please leave me a link in the comments section. I am specifically interested in the following for now:

  • Performance comparison of a standard out of the box Drupal site when it is run on Amazon EC2 vs Google Compute Engine
  • Performance comparison of a Drupal site (with x number of modules) when it is run on different Instance sizes on Amazon EC2.
  • Performance comparison of a Drupal site (with x number of modules) when it is run on different machines on Google Compute Engine.
Read Next
Accessibility in the Real World: Top 6 Automation Misses

Accessibility in the Real World: Top 6 Automation Misses

07 April, 2014|9 min