Dear Developers, I got some requests for the Benchmarks on the changes that I made to the caching so here are the benchmarks: Before: Queries: 113 DB time: 120ms Page Execution Time: 495ms Memory: 11.4 / 12.17 After: Queries: 102 DB time: 105ms Page Execution Time: 484ms Memory: 11.41 / 12.29 Let me know what you think and it would be nice to get some feed back from some other test sites. This data help me to know if I should continue on this path. Thanks Jeff Fillmore jfillmore@sublimenet.com Sublimenet INC 208-323-9451 -----Original Message----- From: development-bounces@drupal.org [mailto:development-bounces@drupal.org] On Behalf Of Larry Garfield Sent: Monday, April 30, 2007 12:28 PM To: development@drupal.org Subject: Re: [development] Increase performance of caching Drupal uses a lot of static caching, so in concept I don't see a problem with this. Benchmarks would be useful, though, both on speed and memory usage. That said, this should be submitted as a feature request patch against Drupal 6 so that it can be reviewed in the issue queue rather than on the dev list. See: http://drupal.org/node/320 http://drupal.org/patch/create Thanks! --Larry Garfield On Mon, 30 Apr 2007 11:22:04 -0600, "Jeff Fillmore" <jfillmore@sublimenet.com> wrote:
Dear Developers,
I’ve been working with a few modifications to the caching system of Drupal, and have found a simple way to speed it up by about 5% across the board ( more with pages that use the cache system more) with only adding five lines of code.
I found that Drupal was calling the cache table multiple times to get the same data so I put the data in a static array.
At the top of cache_get function in includes/cache.inc I added these four lines on line 15:
static $cache_array = array();
if ($cache_array[$key] != null){
return $cache_array[$key];
}
Right before $cache is returned I added this line on line 45:
$cache_array[$key]=$cache;
I am sure there are lots of other ways to do this, but the reason that I modified the core code directly is that I felt that this type of increase should not a matter of adding a new module, if it is even possible with another module. Although this will increase the overall size of the apache children during runtime I felt that it was a small price for the speed of the application and overall user throughput. Also are there any other places that we could do something similar. For instance cache the menus in memory for the ‘drupal_lookup_path’ for instance.
Because this is in the caching for registered and anonymous users the benefit is across the board. Although the increase will diminish over the size of the site, it should be a rather substantial increase for about 70-80% of the drupal installs out there.
I am curious to hear feedback as to what you guys think of this addition, and the overall speed increase and offsets. And potentially other increases that would be of similar avenues and if we should pursue them.
Thanks
Jeff Fillmore
HYPERLINK "mailto:jfillmore@sublimenet.com"jfillmore@sublimenet.com
Sublimenet INC
208-323-9451
No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.467 / Virus Database: 269.6.2/781 - Release Date: 4/30/2007 9:14 AM
No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.467 / Virus Database: 269.6.2/781 - Release Date: 4/30/2007 9:14 AM No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.467 / Virus Database: 269.6.2/782 - Release Date: 5/1/2007 2:10 AM