Quick and Dirty Profiling
Profiling the quick and dirty way works for me a lot of the time. Other times, Zend’s profiler is better, but when I just want to work out which function is taking all the time, the following function peppered throughout my code tells me what’s going on:
function PerfPrint($msg) { global $perf_print_start, $perf_print_delta; if(!isset($perf_print_start)) { $perf_print_start = microtime_float(); $perf_print_delta = $perf_print_start; } $e = microtime_float(); $since_start = sprintf("%.04f", ($e-$perf_print_start)); $delta_time = sprintf("%.04f", ($e-$perf_print_delta)); $perf_print_delta = microtime_float(); $now = date('H:i:s'); if(PHP_SAPI == 'cli') { echo "Perf: $now: since start: $since_start,"; echo " delta: $delta_time - $msgn"; } else { echo "<p>$now: since start: $since_start,"; echo " delta: $delta_time - $msg</p>"; } }