• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用php-timeit估计php函数的执行时间

php 搞代码 4年前 (2022-01-01) 21次浏览 已收录 0个评论

当我们在使用php性能优化的时候,需要知道某个函数的执行时间,在python中,我们有timeit模块给我们实现,在php有没有类似的模块?接下来,小编给大家分享我写的一个简单timeit函数,需要的朋友可以参考下

废话不多说了,直接把我写的timeit函数分享给大家,具体内容如下:

 /** * 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 <a style="color:transparent">来源gao*daima.com搞@代#码网</a>'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); }

  测试一下自己写的一个求根算法与系统内置求根函数的执行时间,如下:

 //取平方根 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)');

  测试结果如下:

0.028280019760132
0.0041000843048096

  可见,内置求根函数比自定义的求根函数快了6倍多~~

php中检测函数执行时间的功能使用的方法

PHP 中的 microtime() 函数可以实现

microtime() 函数返回当前 Unix 时间戳和微秒数。

microtime(get_as_float)

参数说明
get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。

本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。

例如:

 <?php $start_time = microtime(true); for($i=1;$i<=1000;$i++){ echo $i.'<br>'; } $end_time = microtime(true);

echo ‘循环执行时间为:’.($end_time-$start_time).’ s’;
?>

以上就是使用php-timeit估计php函数的执行时间的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用php-timeit估计php函数的执行时间

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址