A Silverstripe module for facilitating profiling with XHProf.
Since the Silverstripe 3 release, Silverstripe's built-in profiling has been disabled (see this thread). Thus, this module has sprung out of neccesity for profiling in Silverstripe 3.
This is a fork from the XHProf PHP compiler, open sourced by Facebook in 2009. It has been amended for easy integration with Silverstripe as well as installation instructions in this readme.
- *nix environment (probably works on OSX as well)
- Silverstripe 3+
Would also work on older Silverstripe versions, but installation instructions need to be amended
XHProf needs to be installed and running on your system for this module to work. Once XHPprof has been installed, follow the following steps:
- Download this module, and place it in your Silverstripe root, calling it
xhprof
- Edit
/framework/main.php
, adding the following lines at the very top (under<?php
), and at the very bottom:
include "../xhprof/_includes/header.php";
include "../xhprof/_includes/footer.php";
- Now, when running your site, you should see a
Profiler output
link on the very bottom of your site
On an *nix machine with PECL installed, follow this instruction:
[sudo] pecl config-set preferred_state beta
[sudo ] pecl install xhprof
- Once installed, add this to the end of your
php.ini
file:
[xhprof]
extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"`
You might need to create the dirctory
- For the graphs to work, you need to install GraphViz:
apt-get install graphviz
- A very good guide on profiling with XHProf:
http://techportal.inviqa.com/2009/12/01/profiling-with-xhprof/ - Another tutorial:
http://net.tutsplus.com/tutorials/php/advanced-codeigniter-profiling-with-xhprof/
Beyond XHProf another PHP profiling solution would be using xDebug, combined with a visualizer, which would either be built-in to an IDE, or using the PHP-based Webgrind web interface.