如何在本地配置php分析工具xhprof

测试环境:

linuxMint + nginx1.4.6+mysql5.5+php5.5

什么是xhprof?

XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。

一,如何安装?

1,下载最新的xhprof包

官网地址:https://pecl.php.net/package/xhprof

下载下来:

wget https://pecl.php.net/get/xhprof-0.9.4.tgz

解压:

tar -xvf xhprof-0.9.4.tgz

2,编译安装pecl扩展库

参考地址:http://php.net/manual/zh/install.pecl.phpize.php

cd xhprof-0.9.4/extension/
phpize
./configure
make
sudo make install

编译成功后,在扩展库目录中会有一个xhprof.so文件

扩展库目录地址:/usr/lib/php5/20121212/

3,修改php配置文件

由于我的电脑用的是php-cgi,需要添加一个配置。

cd /etc/php5/cgi/conf.d

新建:xhprof.ini文件

extension=xhprof.so

4,重启php,重启php-cgi

重启php:

sudo service php5-fpm restart

重启php-cgi

kill -9 17445

php-cgi -b 127.0.0.1:9000&

5,复制xhprof到网站根目录

比如我的根目录为:/data/webroot/

复制两个目录即可:

cp -r xhprof_html/ /data/webroot/
cp -r xhprof_lib/ /data/webroot/

6,查看本地环境是否正确安装了xhprof

新建文件:info.php

<?php
echo phpinfo();

如果能在页面中搜索到xhprof,表示已经正确安装了xhprof:

xhprof

xhprof    0.9.4
CPU num    4

二、如何使用?

xhprof使用比较简单。

在下载的目录里面有一个文件 examples/sample.php 文件

<?php                                                                                                                                                                        

function bar($x) {
  if ($x > 0) {
    bar($x - 1);
  }
}

function foo() {
  for ($idx = 0; $idx < 5; $idx++) {
    bar($idx);
    $x = strlen("abc");
  }
}

// start profiling
xhprof_enable();

// run program
foo();

// stop profiler
$xhprof_data = xhprof_disable();

// display raw xhprof data for the profiler run
print_r($xhprof_data);

$XHPROF_ROOT = realpath(dirname(__FILE__) .‘/..‘);
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "---------------\n".
"Assuming you have set up the http based UI for \n".
"XHProf at some address, you can view run at \n".
"http://localhost/xhprof/index.php?run=$run_id&source=xhprof_foo\n".
"---------------\n";

 

在浏览器查看这个文件会显示下面的代码:

--------------- Assuming you have set up the http based UI for XHProf at some address, you can view run at http://localhost/xhprof/index.php?run=562614ece2e2d&source=xhprof_foo ---------------

这时访问:http://localhost/xhprof/index.php 会出现几个文件:

No XHProf runs specified in the URL.

Existing runs:

562614ece2e2d.xhprof_foo.xhprof 2015-10-20 18:18:20
562614e0b76b2.xhprof_foo.xhprof 2015-10-20 18:18:08
562614a33f6ec.xhprof_foo.xhprof 2015-10-20 18:17:07
5626146be4aaf.xhprof_foo.xhprof 2015-10-20 18:16:11
5626146324cdd.xhprof_foo.xhprof 2015-10-20 18:16:03

点击进去一个:

http://localhost/xhprof/index.php?run=562614ece2e2d&source=xhprof_foo

点击[View Full Callgraph]  可能会报错

failed to execute cmd: " dot -Tpng". stderr: `sh: 1: dot: not found ‘

是因为没有安装图形化工具

sudo apt-get install graphviz

安装完后,再打开,就可以看到视图了。

名词:
1. Inclusive Time :包括子函数所有执行时间。
2. Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
3. Wall Time:花去了的时间或挂钟时间。
4. CPU Time:用户耗的时间+内核耗的时间
5.Inclusive CPU:包括子函数一起所占用的CPU
6.Exclusive CPU:函数自身所占用的CPU
时间: 2024-12-13 19:22:36

如何在本地配置php分析工具xhprof的相关文章

MySQL慢日志查询全解析:从参数、配置到分析工具【转】

转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbaplus.cn/news-11-694-1.html 一.慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.long_query_time的默认值为

PHP性能追踪及分析工具xhprof的安装与使用

https://segmentfault.com/a/1190000007288664(原文地址) 对于本地开发环境来说,进行性能分析xdebug是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. 我们今天就简单介绍一下xhprof的简单安装与使用 xhprof的安装 下载xhprof,我们这里选择的是通过git clone的方式,当然你也可以从 http://pecl.php.net/package/x... 这里下

PHP性能分析工具XHProf安装使用教程

HProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile.基于浏览 器的性能分析用户界面能更容易查看,或是与同行们分享成果.也能绘制调用关系图.在数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序. 它独有的数据计算的报告/后处理阶段.在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开

php性能分析工具 - xhprof的安装使用

一.前言 有用的东西还是记录下来吧,也方便以后的查询:这次记录一下xhprof的安装使用: xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低, 还可以用在生产环境中,也可以由程序开 关来控制是否进行profile. 二.安装 1. wget http://pecl.php.net/get/xhprof-0.9.3.tgz 2. tar zxf xhprof-0.9.3.tgz 3. cd xhprof-0.9.3/extension 4.

PHP性能分析工具xhprof的安装使用与注意事项

前言 xhprof由facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署. 它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时. 下面主要讲一下安装和使用过程 1.安装 (1)下载和解压 1 2 wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar zxvf xhprof-0.9.4.tgz (2)编译和运行 1 2 3 4 5 cd xhprof-0.9.4/extension/ php

windows下安装php性能分析工具XHProf

一.安装扩展 下载XHProf扩展:http://dev.freshsite.pl/php-extensions/xhprof.html 放入扩展文件:下载后解压出.dll文件,拷贝它到php的ext文件夹里面. 开启扩展:php.ini中加入下面的代码 [xhprof] extension=xhprof.dll xhprof.output_dir="F:/xhprof/xhprof_log" 二.安装php分析包 这个扩展需要一个php程序来调用. 百度网盘下载:http://pan

windows配置xhprof,PHP性能分析工具

本来以为配置这么一个工具不会费很大的力气,后面发现完全不是. 一.小插曲 早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了.这个问题纠缠了我一个上午.对了还有个问题是输入法不能显示了,后面下载了个百度卫士修复了下,早上真是诸事不顺. 1)一开始以为是firefox浏览器Fiddler插件的问题,然后关闭firefox中的插件,关闭Fiddler,发现还是不能打开网站. 2)以为是浏览器的问题,马上打开另外几个浏览器,在chrome浏览器中打开,依旧不能打

PHP性能分析工具:xhprof

?phpize的安装 一直想装VLD却一直没装上,因为需要用到phpize,但这个工具大部分机子都没有装,上网搜了一下大部分都是讲phpize的应用没有讲怎么安装. 今天终于搜到了,不过是要在linux机器上,有yum命令就行.phpize是属于php-devel的内容,所以只要运行 yum install php-devel就行. 来源: <http://blog.163.com/[email protected]/blog/static/696741432010626140157/> xh

xhprof 性能分析工具

1.下载的zip文件解压缩后将php_xhprof.dll 文件,直接放到php的ext目录里面 2.然后将xhprof_html 文件夹和xhprof_lib文件夹和config.php直接放到你的根目录下面 3.配置php.ini文件 将下面内容添加到php.ini文件里面 extension=php_xhprof.dll [quote] [xhprof] xhprof.output_dir="D:/xampp/htdocs/xhprof_log" [/quote] 4.htdoc