PHP script timer monitoring functions

I have two functions whose runtime I would like to compare:

function subject_one() { $str = preg_match_all( ...[SNIP]... ); // ...[SNIP]... return $str; } function subject_two() { $reader = new XMLReader; $writer = new XMLWriter; // ...[SNIP]... echo $str; } 

Is it possible to write a function for this?

For instance:

 function benchmark_two_functions( $first_function, $second_function ) { // do stuff return $length_of_time_to_complete_each_function } 

In most of the examples I've seen, add code to the top and bottom of the script, which I would like to avoid if possible.

+4
source share
3 answers

try it

 function subject_one(){ sleep(1); } function subject_two(){ sleep(5); } /* Result should be ~4 */ print benchmark_two_functions('subject_one','subject_two'); function getmicrotime() { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } function benchmark_two_functions($first_function, $second_function){ $start = getmicrotime(); $first_function(); $exec_time_first = getmicrotime() - $start; $start = getmicrotime(); $second_function(); $exec_time_second = getmicrotime() - $start; return $exec_time_first - $exec_time_second; } 
+11
source

PEAR has a Benchmark library for profiling PHP. This works very well, but perhaps XDebug is the best tool if you have root access to your server and you can install it.

0
source

All Articles