When we use php for performance optimization, we need to know the execution time of a function. in python, we have a timeit module for us to implement. Is there a similar module in php? Next, let's share with you a simple timeit function that I have written. if you need a friend, I will share the timeit function I have written with you. the specific content is as follows:
/** * Compute the delay to execute a function a number of time * @param $count Number of time that the tests will execute the given function * @param $function the function to test. Can be a string with parameters (ex: 'myfunc(123, 0, 342)') or a callback * @return float Duration in seconds (as a float) */function timeit($count, $function) { if ($count <= 0){ echo "Error: count have to be more than zero"; return -1; } $nbargs = func_num_args(); if ($nbargs < 2) { echo 'Error: No Funciton!'; echo 'Usage:'; echo "\ttimeit(count, 'function(param)')"; echo "\te.g:timeit(100, 'function(0,2)')"; return -1; // no function to time } // Generate callback $func = func_get_arg(1); $func_name = current(explode('(', $func)); if (!function_exists($func_name)) { echo 'Error: Unknown Function'; return -1; // can't test unknown function } $str_cmd = ''; $str_cmd .= '$start = microtime(true);'; $str_cmd .= 'for($i=0; $i<'.$count.'; $i++) '.$func.';'; $str_cmd .= '$end = microtime(true);'; $str_cmd .= 'return ($end - $start);'; return eval($str_cmd);}
Test the execution time of a self-written root algorithm and built-in root function as follows:
// Take the square root function sqrt_nd ($ num) {$ value = $ num; while (abs ($ value * $ value-$ num)> 0.001) {$ value = ($ value + $ num/$ value)/2;} return $ value;} print timeit (1000, 'sqrt _ nd (5 )'); print "\ n"; print timeit (1000, 'sqrt (5 )');
The test results are as follows:
0.028280019760132
0.0041000843048096
It can be seen that the built-in root function is more than six times faster than the custom root function ~~
How to check the function execution time in php
The microtime () function in PHP can be implemented
The microtime () function returns the current Unix timestamp and the number of microseconds.
Microtime (get_as_float)
Parameter description
If the get_as_float parameter is given and its value is equivalent to TRUE, this function returns a floating point number.
This function is only available in the operating system that supports the gettimeofday () system call.
For example:
<?php$start_time = microtime(true);for($i=1;$i<=1000;$i++){echo $i.'
';}$end_time = microtime(true);
Echo 'cycle Execution time: '. ($ end_time-$ start_time). s ';
?>