测试环境:

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..tgz

2,编译安装pecl扩展库

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

cd xhprof-0.9./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 - 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

二、如何使用?

xhprof使用比较简单。

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

<?php                                                                                                                                                                        

function bar($x) {
if ($x > ) {
bar($x - );
}
} function foo() {
for ($idx = ; $idx < ; $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 -- ::
562614e0b76b2.xhprof_foo.xhprof -- ::
562614a33f6ec.xhprof_foo.xhprof -- ::
5626146be4aaf.xhprof_foo.xhprof -- ::
5626146324cdd.xhprof_foo.xhprof -- ::

点击进去一个:

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

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

名词:
. Inclusive Time :包括子函数所有执行时间。
. Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
. Wall Time:花去了的时间或挂钟时间。
. CPU Time:用户耗的时间+内核耗的时间
.Inclusive CPU:包括子函数一起所占用的CPU
.Exclusive CPU:函数自身所占用的CPU

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

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

    转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...

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

    对于本地开发环境来说,进行性能分析xdebug是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. 我们今天就简单介绍一下x ...

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

    一.前言 有用的东西还是记录下来吧,也方便以后的查询:这次记录一下xhprof的安装使用: xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低, ...

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

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

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

    一.安装扩展 下载XHProf扩展:http://dev.freshsite.pl/php-extensions/xhprof.html 放入扩展文件:下载后解压出.dll文件,拷贝它到php的ext ...

  6. php性能分析工具xhprof

    安装方法: wget http://pecl.php.net/get/xhprof-0.9.x.tgz cp xhprof-0.9.x.tgz /home/www/xhprof.tgz tar zxv ...

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

    本来以为配置这么一个工具不会费很大的力气,后面发现完全不是. 一.小插曲 早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了.这个问题纠缠了我一个上午.对了还有 ...

  8. PHP 性能追踪及分析工具(XHPROF)

    原文:https://gold.xitu.io/post/5860d23f128fe10069e1cfbf XHPROF:Facebook 开源的轻量级PHP性能分析工具. 它报告函数级别的请求次数和 ...

  9. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

随机推荐

  1. Java RTTI机制与反射机制

    1.1 什么是RTTI? 维基百科的定义:In computer programming, RTTI (Run-Time Type Information, or Run-Time Type Iden ...

  2. bzoj1102: [POI2007]山峰和山谷Grz

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  3. C#中的斜变性和逆变性的详解

    1,问题 大家可以看到定义泛型类型的可以看到out和in这两个关键字,那么具体代表什么意思呢? 2,文字解释 C# 4.0通过两个关键字:out和in来分别支持以协变和逆变的方式使用泛型. 如果某个返 ...

  4. dedecms /member/edit_baseinfo.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link: http:// ...

  5. Load Average

    在Linux系统下面,有很多的命令可以查看系统的负载情况:比如top,uptime,w,示例如下: [wenchao.ren@l-cmsweb1.ops.cn1 ~]$ w 18:39:10 up 7 ...

  6. AngularJs ngCsp、ngFocus、ngBlur、ngForm

    ngCsp 处理CSP(上下文安全策略)的支持. 当开发如google浏览器的扩展时候这个就必须使用. CSP禁止应用程序使用eval和Function(string)生成的函数.如果我们需要兼容,我 ...

  7. HDU 1285 确定比赛名次(简单拓扑排序)

    题目链接: 传送门 确定比赛名次 Time Limit: 1000MS     Memory Limit: 65536K Description 有N个比赛队(1 Input 输入有若干组,每组中的第 ...

  8. Python KeyError

    Google一下轻松找到了答案,大家可以看一下Python Wiki,很简单,翻译如下. 在Python中,当你使用a[key]这种方式从字典中获取一个值时,若字典中不存在这个此key时就会产生一个K ...

  9. tmux(ubuntu14.04)编译过程遇到的错误

    1. configure: error: "libevent not found" 解决方法: $ git clone https://github.com/libevent/li ...

  10. python 培训之 Python 数据类型

    0. 变量 计算机某块内存的标签,存储数据的容器的标签,可被覆盖. a = ""     a = "a1bcd"       a=a+"ddd&quo ...