码迷,mamicode.com
首页 > Web开发 > 详细

Xhprof安装笔记(PHP性能监控)

时间:2016-08-04 21:39:54      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

Xhprof是facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署。
它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4/extension/
/usr/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

# 编辑php.ini:
[xhprof]
extension = xhprof.so
xhprof.output_dir=/tmp

重启服务     service php-fpm restart        

# 测试下
<?php
function my_dump($str) {
 print $str;
}

xhprof_enable();        // start profiling
my_dump(Funsion Wu);    // run program
$xhprof_data = xhprof_disable();    // stop profiler
print_r($xhprof_data);    // display raw xhprof data for the profiler run
?>

# 最后返回数组,就表示安装好了。具体哪些值是什么意思先别管,因为下面有UI的配置。会很直观!
yum -y install libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch 

自动安装 yum install -y graphviz

手动安装:
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
tar zxf graphviz-2.24.0.tar.gz
cd graphviz-2.24.0
./configure
make && make install

安装完成后,会生成 /usr/local/bin/dot 文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。

vi /root/.bashrc
export PATH="$PATH:/usr/local/bin/dot"
为Xhprof配置一个访问站点(虚拟主机)

比如做一个虚拟域名 dev.xhprof.com
绑定到xhprof的站点根目录 /usr/local/xhprof-0.9.2/xhprof_html

# 找到你要分析的代码,在代码开始处添加
xhprof_enable();    // start profiling

# 在代码结束位置添加
$xhprof_data = xhprof_disable();        // stop profiler, display raw xhprof data for the profiler run
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php");    # 请注意设置站点 include_path 权限
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php");
$xhprof_runs = new \XHProfRuns_Default();
// Save the run under a namespace "xhprof_foo".
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
$str = "\r\n------------------\r\n".
    "Assuming you have set up the http based UI for \r\n".
    "XHProf at some address, you can view run at \r\n".
    "http://dev.xhprof.com/index.php?run=$run_id&source=xhprof_foo".
    "\r\n------------------\r\n";
echo nl2br($str);


然后进入程序输出的网址(比如 http://dev.xhprof.com/index.php?run=52c0ea0bef834&source=xhprof_foo ),进行查看
下面是一些参数说明
Inclusive Time                 包括子函数所有执行时间。
Exclusive Time/Self Time  函数执行本身花费的时间,不包括子树执行时间。
Wall Time                        花去了的时间或挂钟时间。
CPU Time                        用户耗的时间+内核耗的时间
Inclusive CPU                  包括子函数一起所占用的CPU
Exclusive CPU                  函数自身所占用的CPU
点击 [View Full Callgraph] 能够以图文的形式查看,很方便

注意: 需要使用ctype这个扩展,Callgraph图片生成依赖一些PHP系统级的函数,所以,最好去掉 php.ini 中的函数禁用

 

Xhprof安装笔记(PHP性能监控)

标签:

原文地址:http://www.cnblogs.com/funsion/p/5738302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!