如何在本地配置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..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的更多相关文章
- MySQL慢日志查询全解析:从参数、配置到分析工具【转】
转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...
- PHP性能追踪及分析工具xhprof的安装与使用
对于本地开发环境来说,进行性能分析xdebug是够用了,但如果是线上环境的话,xdebug消耗较大,配置也不够灵活,因此线上环境建议使用xhprof进行PHP性能追踪及分析. 我们今天就简单介绍一下x ...
- php性能分析工具 - xhprof的安装使用
一.前言 有用的东西还是记录下来吧,也方便以后的查询:这次记录一下xhprof的安装使用: xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低, ...
- PHP性能分析工具xhprof的安装使用与注意事项
前言 xhprof由facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署. 它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时. 下面主要 ...
- windows下安装php性能分析工具XHProf
一.安装扩展 下载XHProf扩展:http://dev.freshsite.pl/php-extensions/xhprof.html 放入扩展文件:下载后解压出.dll文件,拷贝它到php的ext ...
- 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 ...
- windows配置xhprof,PHP性能分析工具
本来以为配置这么一个工具不会费很大的力气,后面发现完全不是. 一.小插曲 早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了.这个问题纠缠了我一个上午.对了还有 ...
- PHP 性能追踪及分析工具(XHPROF)
原文:https://gold.xitu.io/post/5860d23f128fe10069e1cfbf XHPROF:Facebook 开源的轻量级PHP性能分析工具. 它报告函数级别的请求次数和 ...
- 日志分析工具ELK配置详解
日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...
随机推荐
- 【bzoj1408】 Noi2002—Robot
http://www.lydsy.com/JudgeOnline/problem.php?id=1408 (题目链接) 题意 定义了3种数,分别求这3种数的φ的和,其中φ(1)=0. Solution ...
- 根据xsd生成C#类
var file = "1.xsd"; // Get the namespace for the schema. CodeNamespace ns = Processor.Proc ...
- C#变量类型
在C#语言中,我们把变量分为七种类型,它们分别是:静态变量(static varibles),非静态变量(instance variables),数组元素(array elements),值参数(va ...
- 王高利:Linux__apache,安装,报错解决
今日编译apache时出错:#./configure --prefix--检查编辑环境时出现:checking for APR... noconfigure: error: APR not found ...
- 常见linux命令释义(第四天)——bash部分
学linux的时候,我跳过了一些很重要的东西.比如分区.还有vim的深入学习.分区没有学习是因为我装的是虚拟机,不知道是什么原因,格式化分区不能正常显示.至于vim,简单的增删改查我已经了解了.能够顺 ...
- BZOJ3813: 奇数国
传送门 欧拉函数+线段树 因为只有60个素数,所以把状态压成long long的形式.用线段树维护区间和和区间和中有多少个质数.然后xjb搞搞就行了,具体参见代码. //BZOJ 3813 //by ...
- DNS(企业级)
构建DNS(企业级) 1.硬件选型 CPU:12C以上配置 内存:16G 网络:千兆 2.初始化系统配置 关闭 iptables service iptables stop chkconfig ipt ...
- 简单的angular表单验证指令
<html ng-app="myApp"> <head> <meta charset="UTF-8"> <title& ...
- PHP-权限控制类
http://blog.csdn.net/painsonline/article/details/7183679 <?php /** * 权限控制类 */ class include_purvi ...
- nginx的在linux系统中的安装
1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. n gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...