Hello world, recently I did some performance analysis of Drupal and compared it to Joomla. http://buytaert.net/drupal-vs-joomla-performance Unfortunately, Drupal is quite slow when it comes to generating non- cached pages. It would be great if we could focus some more on the performance of non-cached pages. Why? Because in practice, it is often a _lot_ more important than the performance of cached pages. I know there are some patches in the queue, and I know we talked about this a lot in the past. I'll review, test and benchmark some of these patches ASAP. There are also a number of ideas that haven't been implemented/tested yet. I hope that you will do the same, and that you continue to think (out of the box) with regard to Drupal's performance. Thanks, -- Dries Buytaert :: http://www.buytaert.net/
From: Dries Buytaert [mailto:dries.buytaert@gmail.com]
recently I did some performance analysis of Drupal and compared it to Joomla.
Unfortunately, Drupal is quite slow when it comes to generating non-cached pages. It would be great if we could focus some more on the performance of non-cached pages. Why? Because in practice, it is often a _lot_ more important than the performance of cached pages.
Do we have any clear ideas about where the bottlenecks lie? Database access? Processing time for rendering complex structural pages and forms? We have handbook pages for writing secure module code. It might be a good idea to provide solid (benchmarked) performance tips to module developers as well. What particular Drupal calls are expensive? What uses of common drupal APIs cause more thrashing than others? Etc... --Jeff
I recently used http://www.xdebug.org/ xdebug 2.0 beta 6 along with kcachegrind to debug a performance issue I was having with Drupal And it helped make it clear where the problem was. Possibly this profiling tool would be useful while benchmarking. 1) pecl install xdebug-beta 2) edit php.ini extension=xdebug.so (might need to be zend_extension but seemed to work as is) xdebug.profiler_enable_trigger=1 3) add XDEBUG_PROFILE to URL e.g. .../node/add?XDEBUG_PROFILE 4) use kcachegrind to open trace file in /tmp I will write up my discoveries as soon as I get a chance although most of them are specific to sites with very large menus and the category module. George Kappel
From: Dries Buytaert [mailto:dries.buytaert@gmail.com]
recently I did some performance analysis of Drupal and compared it to Joomla.
Unfortunately, Drupal is quite slow when it comes to generating non-cached pages. It would be great if we could focus some more on the performance of non-cached pages. Why? Because in practice, it is often a _lot_ more important than the performance of cached pages.
Do we have any clear ideas about where the bottlenecks lie? Database access? Processing time for rendering complex structural pages and forms? We have handbook pages for writing secure module code. It might be a good idea to provide solid (benchmarked) performance tips to module developers as well. What particular Drupal calls are expensive? What uses of common drupal APIs cause more thrashing than others? Etc...
--Jeff
On Tue, August 15, 2006 4:36 pm, Dries Buytaert said:
Hello world,
recently I did some performance analysis of Drupal and compared it to Joomla.
http://buytaert.net/drupal-vs-joomla-performance
Unfortunately, Drupal is quite slow when it comes to generating non- cached pages. It would be great if we could focus some more on the performance of non-cached pages. Why? Because in practice, it is often a _lot_ more important than the performance of cached pages.
I know there are some patches in the queue, and I know we talked about this a lot in the past. I'll review, test and benchmark some of these patches ASAP. There are also a number of ideas that haven't been implemented/tested yet.
I hope that you will do the same, and that you continue to think (out of the box) with regard to Drupal's performance.
Thanks,
Does anyone have a good profiling tool? That could be very helpful in figuring out where the slow spots are. The only one I know of is Zend Studio, which I use at work but is rather pricy for personal use. :-( (And since my office is not a Drupal shop, they'd probably not let me do any testing there.) --Larry Garfield
On 8/15/06, Larry Garfield <larry@garfieldtech.com> wrote:
Does anyone have a good profiling tool? That could be very helpful in figuring out where the slow spots are. The only one I know of is Zend Studio, which I use at work but is rather pricy for personal use. :-( (And since my office is not a Drupal shop, they'd probably not let me do any testing there.)
That was part of my point of bringing up the benchmarking group. I'd love to have more discussion about how to profile/benchmark in Drupal - regardless of the venue. If someone wants to hold court - speak up! Greg -- Greg Knaddison | Growing Venture Solutions Denver, CO | http://growingventuresolutions.com Technology Solutions for Communities, Individuals, and Small Businesses
On 16 Aug 2006, at 01:05, Larry Garfield wrote:
Does anyone have a good profiling tool? That could be very helpful in figuring out where the slow spots are. The only one I know of is Zend Studio, which I use at work but is rather pricy for personal use. :-( (And since my office is not a Drupal shop, they'd probably not let me do any testing there.)
The slow spots (and a possible profiling methodology) are here: http://buytaert.net/drupal-database-interaction -- Dries Buytaert :: http://www.buytaert.net/
Dries Buytaert wrote:
Hello world,
recently I did some performance analysis of Drupal and compared it to Joomla.
http://buytaert.net/drupal-vs-joomla-performance
Unfortunately, Drupal is quite slow when it comes to generating non-cached pages. It would be great if we could focus some more on the performance of non-cached pages. Why? Because in practice, it is often a _lot_ more important than the performance of cached pages.
I know there are some patches in the queue, and I know we talked about this a lot in the past. I'll review, test and benchmark some of these patches ASAP. There are also a number of ideas that haven't been implemented/tested yet.
I hope that you will do the same, and that you continue to think (out of the box) with regard to Drupal's performance.
Thanks,
-- Dries Buytaert :: http://www.buytaert.net/ Just of note -- replacing views, most of phptemplate, blocks, and regions with specialized arrays with "render" functions just brought one site I'm working on a 100-300% performance boost for non cached pages. Oddly, when I added back the menu system, it did not affect my ghetto benchmarks more than 50-100 microseconds (the orignal frontpage was clocking in at 3000 to 4000 microseconds, today's gutting out has brought it down to an average of 800 microseconds). So, blocks, views, and phptemplate are likely culprits IMHO. In the order of my suspicion, I'd go with views, blocks, and finally phptemplate.
Best, Nick Lewis http://www.nicklews.org
Nick Lewis wrote:
Just of note -- replacing views, most of phptemplate, blocks, and regions with specialized arrays with "render" functions just brought one site I'm working on a 100-300% performance boost for non cached pages. Oddly, when I added back the menu system, it did not affect my ghetto benchmarks more than 50-100 microseconds (the orignal frontpage was clocking in at 3000 to 4000 microseconds, today's gutting out has brought it down to an average of 800 microseconds). So, blocks, views, and phptemplate are likely culprits IMHO. In the order of my suspicion, I'd go with views, blocks, and finally phptemplate.
Interesting. What exactly do you mean by blocks? The whole block generating system or particular blocks? Cheers, Gerhard
I've posted a couple of profiles / code traces here: http://drupal.org/node/79193 Would have sent them to the list, but the attachments were too large and got bounced. andre Dries Buytaert wrote:
Hello world,
recently I did some performance analysis of Drupal and compared it to Joomla.
http://buytaert.net/drupal-vs-joomla-performance
Unfortunately, Drupal is quite slow when it comes to generating non-cached pages. It would be great if we could focus some more on the performance of non-cached pages. Why? Because in practice, it is often a _lot_ more important than the performance of cached pages.
I know there are some patches in the queue, and I know we talked about this a lot in the past. I'll review, test and benchmark some of these patches ASAP. There are also a number of ideas that haven't been implemented/tested yet.
I hope that you will do the same, and that you continue to think (out of the box) with regard to Drupal's performance.
Thanks,
-- Dries Buytaert :: http://www.buytaert.net/
Hi, maybe this one would need attention: http://drupal.org/node/64967 I started it in May, but now i don't have enough time to solve it. preg_match is definitely much faster than ereg and there are still 30 occurences of ereg in Drupal CVS (most of them in legacy.inc though) Jakub -- Jakub Suchý <jakub.suchy@logios.cz> GSM: +420 - 777 817 949 LOGIOS s.r.o, V Podhájí 776/30, 400 01 Ústí nad Labem tel.: +420 - 474 745 159, fax: +420 - 474 745 160 e-mail: info@logios.cz, web: http://www.logios.cz
participants (9)
-
Andre Molnar -
Dries Buytaert -
George Kappel -
Gerhard Killesreiter -
Greg Knaddison - GVS -
Jakub Suchy -
Jeff Eaton -
Larry Garfield -
Nick Lewis