[wp-hackers] Useful caching

Matt Mullenweg m at mullenweg.com
Sun Sep 24 19:19:01 GMT 2006

David Chait wrote:
> While that "makes some sense", if it has anything to do with the "built-in 
> object cache", it doesn't help the average user -- unless something's 
> changed in 2.1. ;)  Last I knew, the object cache was now disabled by 
> default, and it actually harms performance in more cases than it helps (in 
> some cases, drastically, due to some odd thrash).  Caused/causes a LOT of 
> support forum traffic.  And this is especially true on shared servers, and 
> cheaper hosting.  I only recommend WP-Cache (or other Staticize derivatives) 
> when asked, unless the person is on a dedi box, and knows what they're doing 
> (i.e., memcached backend, et al).

I'm not suggesting we change the current default behaviour, just to plug 
in our current cache infrastructure (which is on by default) to look at 
these high-use situations.

> One thing I had done (that seemed to make a difference) was to NOT grab * 
> from page posts, but only those fields really needed.  ie., if showing only 
> excerpts, then grabbing full post content is wasteful, extremely in big-post 
> cases.

That's a good idea, I don't even think we need excerpts.

> Frankly, the discussion about caching post-filtered content to the field 
> that's sitting in the DB should be re-raised, since that's most of the 
> content 'translation' occurring on each pageload, and for large posts that's 
> a heavier hit (multiple filters re-processing the body content -- which 
> depending on the code can cause PHP to copy the entire block of text over 
> and over again...) than the SQL lookup.

You're welcome to try it, just write a loop to dump the output of 
the_content into that DB field, and then modify the_content on your site 
to use that field instead of running filters. It's been a while since I 
ran that test, but I couldn't measure a significant difference. (And 
that was when our filters and regex were less efficient.)

> At what point do we start discussing rolling WP-Cache/Staticize 
> functionality into the core, even if it's just handling certain things (like 
> the RSS feeds might be a perfect example)?  Obviously, if you're running any 
> random-lookup sidebars, Static-type stuff gets tricky (as it has to be 
> wrappered).

I think wp-cache is at the opposite end of the spectrum from where WP is 
today, and that's good. However I think we could move a little more 
toward the middle without creating any additional complexity for the user.

This might be moot, since after some tweaking and testing I found that 
the built-in MySQL query cache brought the total query time down to 2 
milliseconds. The remaining 298 in the page execution time was PHP.

Matt Mullenweg
  http://photomatt.net | http://wordpress.org
http://automattic.com | http://akismet.com

More information about the wp-hackers mailing list