I did a benchmark comparison of Drupal 5.6 and WP 2.3.3 about a month ago. I started with clean installs of each app. I then used the devel module on Drupal to create 1,000 nodes with 40 comments each and 20 categories. I then converted that data over to work in WP, so each app was working with the same data.
Next I didn't use any plugins/modules on either one. I also got rid of all blocks and widgets from both apps. That left me with basically the same setup on each system (including same number of items to show on the front page).
Running numerous benchmarks under different scenarios, I ended up seeing Drupal serving almost 3 times the requests in the same amount of time as Wordpress. On single item views with comments, Drupal was serving about 4 times the requests.
I have done development in both systems professionally for a couple of years now, and this laid my suspicions to rest. It appears to me that Wordpress needs a lot of attention in the performance department. It's a great system that is easily customized, but it lacks in the area of optimized code.
The biggest area I have noticed this bottleneck in comes from the filters. For every page view, each post or comment is ran through numerous filters (including the wpautop). This is a total waste of resources. Why filter these items on every view, when they aren't being changed? Just filter them at insert/update times and be done with it. Also if you look through those filters, they are heavily riddled with numerous regex functions. These also take up a lot of cycles. That alone is another good reason to move the filtering from the render stage, to the save stage.
Thanks for an interesting read. I never work with IIS, but it is good to see the decent performance come out of it.
Similar results on LAMP
I did a benchmark comparison of Drupal 5.6 and WP 2.3.3 about a month ago. I started with clean installs of each app. I then used the devel module on Drupal to create 1,000 nodes with 40 comments each and 20 categories. I then converted that data over to work in WP, so each app was working with the same data.
Next I didn't use any plugins/modules on either one. I also got rid of all blocks and widgets from both apps. That left me with basically the same setup on each system (including same number of items to show on the front page).
Running numerous benchmarks under different scenarios, I ended up seeing Drupal serving almost 3 times the requests in the same amount of time as Wordpress. On single item views with comments, Drupal was serving about 4 times the requests.
I have done development in both systems professionally for a couple of years now, and this laid my suspicions to rest. It appears to me that Wordpress needs a lot of attention in the performance department. It's a great system that is easily customized, but it lacks in the area of optimized code.
The biggest area I have noticed this bottleneck in comes from the filters. For every page view, each post or comment is ran through numerous filters (including the wpautop). This is a total waste of resources. Why filter these items on every view, when they aren't being changed? Just filter them at insert/update times and be done with it. Also if you look through those filters, they are heavily riddled with numerous regex functions. These also take up a lot of cycles. That alone is another good reason to move the filtering from the render stage, to the save stage.
Thanks for an interesting read. I never work with IIS, but it is good to see the decent performance come out of it.