最近工作有些小忙,经常加班,偶尔还会通宵。但最终热门微博“混合流”顺利地全量上线了。可是,从性能角度来说,还是有不少的提升空间的。

下面说下利用 xhprof 来进行 WEB 性能的分析。

安装 xhprof 扩展

官方的文档胜过一切 => http://php.net/xhprof

注意:如果想利用 xhprof 绘图,那么需要将系统默认禁用函数打开。

;disable_functions = phpinfo,system,exec,shell_exec,passthru,proc_close,show_source

部署xhprof的运行环境

经过上面的配置,在你跑过项目后,xhprof 会输出一份报告文件。不过,这份文件的内容是被序列化的数组。所以,需要搭建一个能够读取该数据文件的 WEB 环境。

这里给一份 xhprof 环境的代码:http://pan.baidu.com/s/1bnLvmrl

之后通过访问 xhprof 的环境,你会看到如下报告界面。

Screen Shot 2015-12-05 at 21.15.34

xhprof 文件列表(/xhprof_html/list.php)

Screen Shot 2015-12-05 at 21.15.58

图标形式的 xhprof 报告(/xhprof_html/index.php)

  • Function Name 方法名称
  • Calls 被调用次数
  • Incl. Wall Time 该函数执行时间(包含内部其他函数调用的时间)
  • Excl. Wall Time 该函数执行时间(不包含内部其他函数调用的时间)
Screen Shot 2015-12-05 at 21.16.26

流程图形式的xhprof报告(/xhprof_html/callgraph.php)

需要关注的几点:

  • 同一方法被过多次的调用(也许是无谓的循环导致的)
  • 耗时是否落到了外部接口上(会影响TPS – 每秒请求数量)
  • 是否有内存的过多消耗(会影响计算效率)
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.