PHP性能分析之xhprof
来源:互联网 发布:解压包软件 编辑:程序博客网 时间:2024/05/16 12:38
xdebug讲到了使用xdebug对php程序进行性能分析,这里再介绍另外一个工具:xhprof,facebook出品。xhprof是一个函数级别的分层性能报告工具,包括调用次数,阻塞时间,CPU时间和内存使用情况。
首先,下载并安装xhprof扩展:
tar
-zxvf xhprof-0.9.4.tgz
cd
xhprof-0.9.4
/usr/local/php/bin/phpize
.
/configure
--with-php-config=
/usr/local/php/bin/php-config
make
make
install
#拷贝扩展
cp
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xhprof
.so
/usr/local/php/lib/php/extensions/
mkdir
-p
/tmp/xhprof
chmod
755
/tmp/xhprof
chown
www:www
/tmp/xhprof
xhprof自带的界面工具比较简单,这里推荐使用另外一个UI:XHProf.io。下载解压到web目录下面,重命名/xhprof/includes/目录下的config.inc.sample.php为/xhprof/includes/config.inc.php,并更改文件:
return
array
(
'url_base'
=>
'http://192.168.84.2:8502/'
, //本地的XHProf.io站点
'url_static'
=> null,
// When undefined, it defaults to $config['url_base'] . 'public/'. This should be absolute URL.
'pdo'
=>
new
PDO(
'mysql:dbname=test;host=192.168.84.3;charset=utf8'
,
'root'
,
'root'
)
//本地的数据库配置,只支持PDO
);
在test数据库上运行/xhprof/setup/database.sql,创建性能检测相关的表结构。
由于XHProf会去github上检测版本,国内访问较慢,建议不要检测。更改/xhprof/includes/bootstrap.inc.php如下:
curl_setopt_array(
$ch
,
array
(
CURLOPT_URL =>
'http://192.168.84.2:8502/version.json'
, //本地的XHProf.io站点下面
CURLOPT_HEADER => FALSE,
CURLOPT_RETURNTRANSFER => TRUE
));
然后更改php.ini配置,在最后加上以下内容:
;xhprof
[xhprof]
extension=xhprof.so;
xhprof.output_dir=/tmp/xhprof
; Automatically add files before PHP document.
; XHProf.io站点下的prepend.php
auto_prepend_file = /usr/local/nginx/xhprof/inc/prepend.php
; Automatically add files after PHP document.
; XHProf.io站点下的append.php
auto_append_file = /usr/local/nginx/xhprof/inc/append.php
auto_prepend_file为每次php脚本运行前,自动加载并运行的文件;auto_append_file为每次php脚本运行后,自动加载并运行的文件。这样可以省去每次在需要检测的php文件里面写xhprof_enable/xhprof_disable等调用代码,不必更改原有代码(无侵入)。
注意:如果你访问了php页面却收集不到情况,可能是你的代码里面写了exit/die终止了程序执行,导致auto_append_file未加载执行,去掉exit/die就可以了。
重启php-fpm:
#重启php-fpm
kill
-USR2 `
cat
/usr/local/php/var/run/php-fpm
.pid`
访问该服务器上php页面,即可以在http://192.168.84.2:8502/看到检测情况。
参数说明
Inclusive Time 包括子函数所有执行时间。
Exclusive Time/Self Time 函数执行本身花费的时间,不包括子树执行时间。
Wall Time 花去了的时间或挂钟时间。
CPU Time 用户耗的时间+内核耗的时间
Inclusive CPU 包括子函数一起所占用的CPU
Exclusive CPU 函数自身所占用的CPU
原文链接:PHP性能分析之xhprof
- PHP性能分析之xhprof
- Php性能分析-xhprof
- PHP性能分析工具XHProf
- php性能分析工具xhprof
- PHP性能分析xhprof使用
- xhprof 检查php分析性能
- php性能分析工具xhprof
- XHProf-php轻量级的性能分析工具
- php 性能分析工具xhprof使用手册
- php性能分析工具——XHProf
- php性能分析工具xhprof实战
- 利用xhprof 做php性能分析
- php生产环境XHProf 性能分析工具
- PHP 性能分析工具XHProf使用
- XHProf——php性能分析工具
- xhprof(PHP性能分析工具)
- 使用xhprof对php性能追踪分析
- php 性能分析工具xhprof使用简介
- Linux C, 取得进程信息和用户信息
- android开发-app widget
- 黑马程序员——java(正则表达式)
- hdoj 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 【多重背包】【01-背包】
- LeetCode_Roman to Integer
- PHP性能分析之xhprof
- mybatis入门学习
- linux下C语言编程,include的默认搜索路径
- MFC获取窗口句柄号的六种方法
- 自己对Z-stack的架构一些理解(仅作学习笔记,有错误希望大家能指出来,初学Z-Stack菜鸟一只)
- HttpClient 教程 HttpClient Tutorial
- 学习ASP .NET MVC5官方教程总结(八)搜索查询
- UVa 11556 - Best Compression Ever
- 工作十年对做事和做人的经验总结