最天想研究一下pear到底是什么东西,找了资料看了看,发现在windows下安装pear好像不难。装完pear,看了一篇关于pear下benchmark的文章,觉得以后可能用到,作下笔记,以便日后好拿来用。

  benchmark是一个测试代码执行时间的工具类。其中包含三个类文件。分别是Timer.php、Iterate.php和Profiler.php

笔记代码如下:

 

 
  
  1. <?php  
  2. require 'Benchmark/Timer.php';  
  3. require 'Benchmark/Iterate.php';  
  4. //产生随机数方法:主要利用mt_rand()  
  5. function create_password($pw_length =0)  
  6. {    
  7.  $randpwd = '';  
  8.  for($i = 0; $i < $pw_length$i ++) {  
  9.   $randpwd .= chr ( mt_rand ( 33, 126 ) );  
  10.  }  
  11.  return $randpwd;  
  12. }  
  13.  
  14. //产生随机数方法:主要利用array_rand()  
  15. function make_password( $length = 0 )  
  16. {  
  17.     $chars    = array('a','b','c','d','e','f','g','h''i','j','k','l','m','n','o','p','q','r','s''t','u','v','w','x','y','z','A','B','C','D''E','F','G','H','I','J','K','L','M','N','O''P','Q','R','S','T','U','V','W','X','Y','Z''0','1','2','3','4','5','6','7','8','9','!''@','$','%','^','&','*','(',')','-','_''[',']','{','}','<','>','~','`','+','=',',''.',';',':','/','?','|');     
  18.     $keys     = array_rand($chars,$length);  
  19.     $password ='';    
  20.     for($i = 0; $i < $length$i++)    
  21.     {    
  22.      $password .= $chars[$keys[$i]];    
  23.     }    
  24.     return $password;    
  25. }  
  26.  
  27. //测试两个生成随机密码方法的性能  
  28.  
  29. //测试1:用Benchmark_Timer测试两个方法的执行时间,timer可以同时测试多行代码之间的执行时间  
  30. $timer = new Benchmark_Timer();  
  31. $timer->start();  
  32. $timer->setMarker("create_password方法:");  
  33. create_password(32);  
  34. $timer->setMarker("make_password方法:");  
  35. make_password(32);  
  36. $timer->stop();  
  37. $timer->display();//用表格的方式输出测试结果  
  38. //测试1 end  
  39. echo "<br/>";  
  40. //测试2:用Benchmark_Iterate分别测试两个函数执行的平均时间,iterate可以同时调用同一个函数以取得其平均执行时间  
  41. //分别执行 10次,得平均执行时间  
  42. $iterate = new Benchmark_Iterate();  
  43. $iterate->run(10,'create_password',32);  
  44. var_dump($iterate->get());  
  45. $iterate->run(10,'make_password',32);  
  46. var_dump($iterate->get());  
  47. //测试2 end  
  48. ?>  

测试1的结果为:

 

测试2的结果为:

array(12) {
  [1]=>
  string(8) "0.000084"
  [2]=>
  string(8) "0.000066"
  [3]=>
  string(8) "0.000066"
  [4]=>
  string(8) "0.000071"
  [5]=>
  string(8) "0.000061"
  [6]=>
  string(8) "0.000061"
  [7]=>
  string(8) "0.000062"
  [8]=>
  string(8) "0.000062"
  [9]=>
  string(8) "0.000064"
  [10]=>
  string(8) "0.000063"
  ["mean"]=>
  string(8) "0.000066"
  ["iterations"]=>
  int(10)
}
array(12) {
  [1]=>
  string(8) "0.000085"
  [2]=>
  string(8) "0.000074"
  [3]=>
  string(8) "0.000070"
  [4]=>
  string(8) "0.000073"
  [5]=>
  string(8) "0.000071"
  [6]=>
  string(8) "0.000069"
  [7]=>
  string(8) "0.000070"
  [8]=>
  string(8) "0.000070"
  [9]=>
  string(8) "0.000072"
  [10]=>
  string(8) "0.000071"
  ["mean"]=>
  string(8) "0.000072"
  ["iterations"]=>
  int(10)
}

mean为函数的平均执行时间