今天面试,面试官问我PHP代码怎么去测试其使用性能,我随口一个microtime,测试时间,其实那时候想说一个Wamp下的组件着,结果没记住名字,也想到了Apache的ab.exe,现在想想,唉,这些基本的东西怎么都没记住啊!回来第一件事——玩转这个所谓的PHP性能测试!

  永远记住这个组件的名字——WebGrind。

  1、需要组件环境

    PHP 5.3

    Apache服务器

    xdebug

  我自己用的是Wamp 2.1,不过用什么样的配置方法都是一样的,无非改改PHP.ini,在组件里添加文件。

  闲话少说,正式开始“玩”这个所谓的WebGrind。

  第一步:查看自己的版本中是否存在WebGrind;

    一般wamp的首页有这个选项,当然你也可以通过访问 http://127.0.0.1/webgrind 来查看是否存在;目录在wamp/apps

    当然你也可以下载,自己配置:

    Xdebug下载地址:xdebug http://www.xdebug.org

    WebGrind下载地址:http://code.google.com/p/webgrind/

  第二步,配置php.ini文件:

    找到PHP.ini 中的xdebug,编辑那里的选项,我把所有的off都开启成on了,这样就可以了;我自己又在网上找到别的教程,加上了几句,不知道何用:

复制代码

; XDEBUG Extension

zend_extension = "H:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll"

[xdebug]
;from Internet start
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir="H:/wamp/tmp"
;endxdebug.remote_enable = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "H:/wamp/tmp"

复制代码

  第三步,测试一下,打开本地的任意一个php文件,WebGrind都会自动监测的,然后打开 http://127.0.0.1/webgrind 查看那里的结果

PHP环境下配置WebGrind——让你的网站性能看得见 _php性能 xdebug WebGrin_03

 

webgrind分析结果参数说明:
   分析结果包括了页面执行过程中所访问的方法,函数以及required/include包含的文件。
   Invocation Count 方法被执行的次数
   Total Self Cost 执行该过程/方法的时间,不包括方法内调用执行其他的自定义函数的时间
   Total Inclusive Cost 方法执行的总时间,包括方法内调用的其他方法的执行时间
   Calls 执行过程中调用的方法/函数
   Total Call Cost 执行所有的调用函数/方法的时间总计
   Count 方法被调用的次数

   关于不同的颜色的说明:蓝色代表PHP内置函数所占耗费时间的比例,绿色是自定义函数所占耗费时间的比例,灰色是required/include所占耗费时间的比例,***是过程执行所占时间的比例
   
   通过该工具我们可以很直观的看到某个方法,某个过程所花费的时间,可以分析出程序的瓶颈在哪里。