[wp-hackers] GSoC Project: Performance Pre-application
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