今天面试,面试官问我PHP代码怎么去测试其使用性能,我随口一个microtime,测试时间,其实那时候想说一个Wamp下的组件着,结果没记住名字,也想到了Apache的ab.exe,现在想想,唉,这些基本的东西怎么都没记住啊!回来第一件事——玩转这个所谓的PHP性能测试!
永远记住这个组件的名字——WebGrind。
1、需要组件环境:
PHP 5.3
Apache服务器
xdebug
我自己用的是Wamp 2.1,不过用什么样的配置方法都是一样的,无非改改PHP.ini,在组件里添加文件。
闲话少说,正式开始“玩”这个所谓的WebGrind。
第一步:查看自己的版本中是否存在WebGrind;
一般wamp的首页有这个选项,当然你也可以通过访问 d 来查看是否存在;目录在wamp/apps
当然你也可以下载,自己配置:
Xdebug下载地址:xdebug
WebGrind下载地址:
第二步,配置php.ini文件:
找到PHP.ini 中的xdebug,编辑那里的选项,我把所有的off都开启成on了,这样就可以了;我自己又在网上找到别的教程,加上了几句,不知道何用:
; XDEBUG Extensionzend_extension = "H:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll"[xdebug];from Internet startxdebug.auto_trace=onxdebug.collect_params=onxdebug.collect_return=onxdebug.trace_output_dir="H:/wamp/tmp";endxdebug.remote_enable = onxdebug.profiler_enable = onxdebug.profiler_enable_trigger = onxdebug.profiler_output_name = cachegrind.out.%t.%pxdebug.profiler_output_dir = "H:/wamp/tmp"
第三步,测试一下,打开本地的任意一个php文件,WebGrind都会自动监测的,然后打开 d 查看那里的结果
webgrind分析结果参数说明:
分析结果包括了页面执行过程中所访问的方法,函数以及required/include包含的文件。 Invocation Count 方法被执行的次数 Total Self Cost 执行该过程/方法的时间,不包括方法内调用执行其他的自定义函数的时间 Total Inclusive Cost 方法执行的总时间,包括方法内调用的其他方法的执行时间 Calls 执行过程中调用的方法/函数 Total Call Cost 执行所有的调用函数/方法的时间总计 Count 方法被调用的次数 关于不同的颜色的说明:蓝色代表PHP内置函数所占耗费时间的比例,绿色是自定义函数所占耗费时间的比例,灰色是required/include所占耗费时间的比例,***是过程执行所占时间的比例 通过该工具我们可以很直观的看到某个方法,某个过程所花费的时间,可以分析出程序的瓶颈在哪里。