废话不多说,直接上代码 ,手动滑稽。o(╯□╰)o   如果已解决您的问题,请在文章底部点击下关注,非常感谢。

下面是LINUX命令行

$ wget http://pecl.php.net/get/xhprof-0.9.4.tgz
$ tar -zxvf xhprof-0.9.4.tgz
$ cd xhprof-0.9.4
$ cd extension/
$ phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config //在这个地方,很多教程是错误的,只有./configure这个,事实是如果只敲./configure会报错。o(╯□╰)o 当然我使用的是ubantu16.04版本,如果是其他版本的话,看看对应的配置文件位置。
$ make
$ sudo make install

LINUX命令行修改php.ini 一般是在/usr/local/php/etc路径下。php.ini加入如下配置:ps不用怀疑就是这么简单

[xhprof]
extension=xhprof.so
xhprof.output_dir=/tmp

重启Apache,然后去网站根目录运行phpinfo()函数,出现以下内容,说明扩展生效:

有了这个扩展后,就可以用这个扩展的内置函数进行分析性能了:

有了这个扩展后,就能在自己的php代码中调用这个扩展内置的函数来做性能监控了,像下面这样子
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
    ................这里是要被监控的代码块
$data = xhprof_disable(); include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php";
$objXhprofRun = new XHProfRuns_Default();//数据会保存在php.ini中xhprof.output_dir设置的目录去中
$run_id = $objXhprofRun->save_run($data, "test");

接下来就是使用的问题了  ps请关注我的博客,博客不在老,而在于是否有没有准确的干货。

加下来怎么使用要干3件事:

1:安装作图工具,命令行如下:

sudo apt-get install graphviz     //安装途中如果出现error,不用管。

2、移动资源文件,在最初下载的xhprof-0.9.4.tgz解压目录里有两个文件夹xhprof_html和xhprof_lib都复制到网站根目录下,只要能被http访问到就可以了:

把这两个文件夹复制到www目录下,复制命令就省略了。

3、在www目录下,新建一个文件test.php测试代码命名如下,加入以下代码:ps代码不用作任何修改,除非你明白怎么回事,大神忽略。

浏览器访问一下test.php文件,比如我本地localhost/test.php

<?php
error_reporting(-1); xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); $begin_time = microtime_float(); //统计执行速度代码
$end_time = microtime_float(); $exec_time = $end_time-$begin_time; //@save_stat($exec_time); for($i=0;$i<10;$i++){
  for($j=0;$j<10;$j++){
  }
}
$data = xhprof_disable();
include_once "xhprof_lib/utils/xhprof_lib.php";//从源码包中拷贝xhprof_lib这个文件夹过来直接可以调用
include_once "xhprof_lib/utils/xhprof_runs.php";
$objXhprofRun = new XHProfRuns_Default();//数据会保存在php.ini中xhprof.output_dir设置的目录去中
$run_id = $objXhprofRun->save_run($data, "test");
//第二个参数是定义文件名称。名称如果为"xhprof",则在xhprof.output_dir设置的目录生成的文件:522ab85f40229.xhprof.xhprof。
//格式为:"id标识.组名称.xhprof",id标识就是$run_id得到的结果。 //id标识是每次运行的时候就生成一个新的标识,也就是生成一个新的文件,记录每次运行的数据
var_dump($run_id);
echo "http://www.xxxx.com/xhprof_html/index.php?run={$run_id}&source=test\n";//source的值必须是save_run中指定的名称。这个其实就是根据编号和名称才能定位到对应的文件"522ab85f40229.xhprof.xhprof"
//将这个地址输出来,是为了直接可以去查看分析结果。 function save_stat($time)
{
static $call_count=1;
$call_limit = 10;
if(!$time) return ;
$date = date("Y-m-d");//暂时按照天来生成文件。方便查阅
$exec_stat_file = './exec_stat'.DIRECTORY_SEPARATOR."exec_stat_file-".$date.".txt";
$fp = fopen($exec_stat_file,'ab');
if(flock($fp,LOCK_EX))
{
$s = 'access:'.date("Y-m-d H:i:s").',execute time:'.$time.'s,request_url:http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."||".PHP_EOL;
fwrite($fp,$s);
flock($fp,LOCK_UN);
}else{
usleep(1000);
if($call_count<$call_limit)
{
$call_count++;
save_stat($time);
}
} @fcolse($fp);
//var_dump($fp); }
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
?>

如果是本地,就访问 localhost/xhprof_html  就会出现以下页面:

上图出现的链接,随便点一个,就会出现以下页面:

点击红色方框这里就会出现作图工具graphviz绘制的分析图:

安装XHProf分析PHP性能瓶颈(原创)的更多相关文章

  1. 使用XHProf分析PHP性能瓶颈(一)

    安装xhprof扩展 wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0.9.4.tgz cd xhprof-0.9.4/ex ...

  2. 使用XHProf分析PHP性能瓶颈(二)

    上一篇文章里,我们介绍了如何基于xhprof扩展来分析PHP性能,并记录到日志里,最后使用xhprof扩展自带的UI在web里展示出来.本篇文章将讲述2个知识点: 使用xhgui代替xhprof的默认 ...

  3. 使用XHProf查找PHP性能瓶颈

    XHProf是facebook 开发的一个测试php性能的扩展,本文记录了在PHP应用中使用XHProf对PHP进行性能优化,查找性能瓶颈的方法. 一.安装Xhprof扩展 //github上下载ht ...

  4. 使用xhprof分析php代码性能

    推荐在Linux平台使用xhprof,win下xhprof目前稳定版本在php5.5 安装xhprof 下载地址 http://pecl.php.net/get/xhprof-0.9.4.tgz 与p ...

  5. 使用xhprof分析php性能

    今天偶然发现 xhprof可以远程分析php代码性能,大致步骤如下 1.  进入 xhprof , 点击右上角注册 并 登陆, 网站左侧解释了如何在本地安装测试xhprof, 我用的是右侧的图表模式, ...

  6. 使用 XHProf 分析你的 PHP 程序

     个人说明: 注意: php5.5运行 xhprof_enable 会发生段错误Segmentation fault: ,这是一个已知的bug. 下面是报错测试脚本: function loader( ...

  7. ubuntu安装XHProf

    1. 安装XHProf wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar zxf xhprof-0.9.2.tgz cd xhprof-0.9.2 s ...

  8. mac系统PHP 7.1.12安装xhprof并使用[View Full Callgraph]小记

    前几天从php7.0.x 升级到了php7.2.0版本, 结果装xhprof没有找到能支持对应版本的xhprof 于是又安装了一个php7.1.2的版本(brew install h) 接着安装xhp ...

  9. 给Clouderamanager集群里安装可视化分析利器工具Hue步骤(图文详解)

    扩展博客 以下,是我在手动的CDH版本,安装Hue. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主 ...

随机推荐

  1. PHPExcel 导出包含图片excel

    <?php // 这里用的PHPExcel版本号为1.8.0 // 下载地址https://github.com/PHPOffice/PHPExcel 下载ZIP压缩包 // 下载后将Class ...

  2. windows redis+lua的调试

    1.编写lua脚本my.lua local key = KEYS[1] --限流KEY(一秒一个) local limit = tonumber(ARGV[1]) --限流大小 local curre ...

  3. (转)Loadrunner监控Linux的17个指标

    1.Average load:Average number of processes simultaneously in Ready state during the last minute.   上 ...

  4. 关于php网络爬虫phpspider

    前几天,被老板拉去说要我去抓取大众点评某家店的数据,当然被我义正言辞的拒绝了,理由是我不会...但我的反抗并没有什么卵用,所以还是乖乖去查资料,因为我是从事php工作的,首先找的就是php的网络爬虫源 ...

  5. [C/C++] malloc内存分配与free内存释放原理

    1.问题的引入: 为什么要使用malloc,主要是因为在代码中,为了节约内存,很多数据都是动态生成的,所以会用malloc,对应于C++中的new,底层还是调用malloc. 2.碎片的问题: 会有内 ...

  6. Redis使用手册

    简介 Redis 是一个开源的使用 ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型. Key-Value数据库. Redis面向互联网的方案提供了三种形式: 1.主从 主机进行写操作, ...

  7. 2017 Multi-University Training Contest - Team 3 Kanade's trio(字典树+组合数学)

    题解: 官方题解太简略了orz 具体实现的方式其实有很多 问题就在于确定A[j]以后,如何找符合条件的A[i] 这里其实就是要提前预处理好 我是倒序插入点的,所以要沿着A[k]爬树,找符合的A[i] ...

  8. OI中组合数的若干求法与CRT

    OI中组合数的若干求法与CRT 只是下决心整理一下子呢~ 说明:本篇文章采用\(\binom{a}{b}\)而不是\(C_{a}^b\),以\(p\)指代模数,\(fac_i\)指代\(i!\),\( ...

  9. JavaScript的大括号的语义

    Javascript中大括号"{}"有四种语义作用: 语义1. 组织复合语句,这是最常见的: view source   print? 1 if( condition ) { 2 ...

  10. Light OJ 1074:Extended Traffic(spfa判负环)

    Extended Traffic 题目链接:https://vjudge.net/problem/LightOJ-1074 Description: Dhaka city is getting cro ...