I am having a problem with CPU usage on my website, and am looking for a way to detect (and fix) what is causing it. A topic not covered in this question.
Following on Hakre answer here, I now realize that what I need to do is profile my PHP calling.
Is it reasonable to put the website on my own computer, run the profiler, and use that information to improve my website?
Any other suggestions on how to do this in the best way?
Not sure exactly what you need to accomplish with your profiling, but WP Tuner (WordPress Plugin) goes a long way to finding what is slowing down your WP install.
It looks at each plugin and give your the memory, CPU time and SQL queries involved.
The SQL Monitor (WordPress Plugin) analyzes SQL performance.
Combine it with W3 Total Cache (WordPress Plugin) and you should get better performance on any platform.
Also, look to using transient API to store fragments you do not need to generate everytime. This can really help on a slow DB.
We have built a PHP profiler on top of XHProf that also uses callgrind output format. The main advantage over XDebug is hugely lower overhead and better recursive function handling, as well as XHProf-style profiling begin and end functions, enabling automated unit testing.
You can see it at http://www.exteon.ro/en/products/php-tools/web3tracer
You will need to compile and use it on your test box though, or ask your hosting provider to install it, but they are not likely to do that.
I searched for some links so it’s easier to read into the topic. I’ve looked for doing PHP profiling with XDebug, something I would suggest to do:
To display profiling results on the remote site, webgrind might be useful. It’s a PHP application that summarizes the profiler output.
I’m not sure if it’s possible to provide this all in form of a wordpress plugin (at least there is none available I’m aware of and I don’t think that there is something available right now), so you might need to do some of the setup / configuration / profiling on your own.
Yes, it is perfectly reasonable to profile the website on your own computer. You will need to install the environment, including the webserver and profile the site using a profiler of choice.
On Windows, local WordPress installation is extremely easy thanks to the Web Platform Installer. Single-click install WordPress including all prerequisites from here.