[wp-hackers] GSoC Project: Performance Pre-application

Thomas Bukowski wordpress at neodude.net
Sat Mar 22 11:58:43 GMT 2008

On Mar 12, 2008, at 12:30 AM, Jacob Santos wrote:

> I've been thinking about it a lot and one area that I'm needing  
> brushing up on, is building high performance PHP applications. I  
> know a few things about the subject, but I think I can learn a lot  
> more from the mentors on the subject. I've decided that if I'm  
> accepted and you guys will have me, then I'll want to take up the  
> Performance project for the GSoC.

I'm also interested in submitting a proposal for WP performance. Jacob  
has some excellent ideas above and covered most of mine as well :)  
Though Jacob is a lot more involved and experienced than I am, I'm  
going to give it a shot anyway.

My main idea was to set up an easy way to run a set of performance  
tests against the current codebase. These tests would be 'action'  
centric - viewing (various) pages, posting an entry, posting a  
comment, deleting a comment, etc etc. Some sort of framework could  
allow batched, high-volume (1000 times?) randomized testing of each  
action, logging times, queries, and whatever else. This gives a quick  
and easy way to know how a certain code change affects performance.  
Jacob's idea with the xdebug plugin/parser could also sit on top of  
this 'framework' and grab some statistics.

This framework can take a form similar to a lot of the code in  
wordpress-tests/wp-testlib. My primary concern here is to make  
performance tuning relatively trivial to do, and hence can be done  
regularly, perhaps as each release's development is drawing to a  
close. I'm not sure if wordpress's development process needs this; it  
was, if anything, just a neat idea.

It could also handle figuring out which sections of the codebase don't  
scale well; i.e., what happens when you comment on a post with 100  
other comments? 10000 other comments?

I believe xdebug can output files that can be visualized with  
KCachegrind; then I'd love to spend some time optimizing the most  
obvious bottlenecks. Not sure if that is worth including in the scope  
of a GSoC project?

I think the idea of having a 'build' system that combines files  
together is worth having; opening the hundred-odd files that wordpress  
includes must be quite expensive? This is obviously a question that  
can easily be answered by testing with the framework.

I don't have much more ideas; a lot of exploration will need to happen  
to find out which direction is the best to pursue if I'm accepted. I'd  
be happy to work with Jacob and do a joint project, if that is  
accepted and preferred by the mentors.

I'd love some feedback on my ideas here, what else to include, what  
I've missed, etc. This is the first time I've started working on an  
open-source project and I've been eyeing wordpress since its b2 days;  
I'm so excited to finally get involved. I'd just like to say - thank  
you for the opportunity.


More information about the wp-hackers mailing list