最近写了一个异步mysql客户端的封装,想与传统的串行方式做下性能对比。包括运行时间、内存使用情况等信息。在github和packagist上搜索并没有找到自己想要的,xhprof又太大了,结果也太复杂,不符合现在的需要。所以决定自己写一个package,来实现对php脚本运行时间和内存使用情况的监控,并生成报告。
示例代码:
requiredirname(dirname(__file__)) . directory_separator .'vendor'. directory_separator .'autoload.php';//初始化,设置内存单位$timer=new\jenner\timer(\jenner\timer::unit_kb);//记录a状态$timer->mark('a');sleep(2);//记录b状态$timer->mark('b');sleep(3);//记录c状态$timer->mark('c');sleep(4);//记录d状态$timer->mark('d');//打印总体报告(不包含差值)$timer->printreport();//获取总体报告,返回数组$report=$timer->getreport();//获取一个mark的报告$a_report=$timer->getreport('a');print_r($a_report);//打印a状态和b状态的差异信息,包含运行时间、使用内存等$timer->printdiffreportbystartandend('a','b');//获取a状态和b状态的差异报告$ab_diff_report=$timer->getdiffreportbystartandend('a','b');//打印第一个mark和最后一个mark之间的差异信息$timer->printdiffreport();//获取第一个mark和最后一个mark之间的差异信息$diff_report=$timer->getdiffreport();
输出结果:
------------------------------------------mark:atime:1437535424.9998smemory_real:1280kbmemory_emalloc:833.046875kbmemory_peak_real:1280kbmemory_peak_emalloc:843.2890625kb------------------------------------------mark:btime:1437535427smemory_real:1280kbmemory_emalloc:834.2265625kbmemory_peak_real:1280kbmemory_peak_emalloc:843.2890625kb------------------------------------------mark:ctime:1437535430.0002smemory_real:1280kbmemory_emalloc:835.1875kbmemory_peak_real:1280kbmemory_peak_emalloc:843.2890625kb------------------------------------------mark:dtime:1437535434.0004smemory_real:1280kbmemory_emalloc:836.1484375kbmemory_peak_real:1280kbmemory_peak_emalloc:843.2890625kbarray( [time] => 1437535424.9998 [memory_real] => 1310720 [memory_emalloc] => 853040 [memory_peak_real] => 1310720 [memory_peak_emalloc] => 863528)------------------------------------------mark:[diff] start_mark:a end_mark:btime:2.0001850128174smemory_real:0kbmemory_emalloc:1.1796875kbmemory_peak_real:0kbmemory_peak_emalloc:0kb------------------------------------------mark:[totaldiff]time:9.0006000995636smemory_real:0kbmemory_emalloc:3.1015625kbmemory_peak_real:0kbmemory_peak_emalloc:0kb
项目主页:http://www.open-open.com/lib/view/home/1437969396019