PHP性能检测与优化—XHProf 安装

XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行profile。

以下是我在虚拟机上安装的过程记录:

1、安装lampp

在虚拟机上安装lampp,必须是develop版本的。否则编译是通不过的。我就是因为编译时遇到 include php.h 时就失败了。所以需要先确保下载并安装了 xampp 的 devel packages。下载地址:http://www.apachefriends.org/download.php?xampp-linux-devel-1.7.4.tar.gz,然后解压到安装的目录tar -xvzf file -C /opt。下载 xampp 的 develop包的时候,注意要选择和自己当前的版本一致的 devel 包,因为 php 的扩展编译的时候,会附加版本信息,启动时进行检查,如果不一致,即便能够编译成功,也是不能够使用的。
2、安装xhprof

wget
http://pecl.php.net/get/xhprof-0.9.2.tgz
tar zxvf xhprof-0.9.2.tgz
cd xhprof-0.9.2
cp -r xhprof_html xhprof_lib /opt/lamp/htdocs #应用程序所在目录,其中xhprof_lib是生成统计数据用到的类库。xhprof_html是查看统计数据的时候,用到的类库。
cd extension
/opt/lampp/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config

sudo make

sudo make install

这时候so文件生成到了/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/这个目录下了。

附件:编译过的so文件

编译xhprof的时候出了很多问题,比如:

这个问题是需要安装http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz和autoconf

可查看http://tech.fblife.com/?p=106

3、修改php.ini配置

vi /opt/lampp/etc/php.ini

[xhprof]

extension=xhprof.so

xhprof.output_dir=/home/sharexie/xhprof  //如果不加存放目录的话,默认是放在/tmp下面

重启lampp:

/opt/lamp/lamp restart
3、安装graphviz

cd /usr/src

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
4、安装libpng

上面的那个工具依赖libpng。到libpng官网down分源码,再次编译一下。

SF.NET上地址是http://sourceforge.net/projects/libpng/files/libpng15/1.5.1/,我下的是http://sourceforge.net/projects/libpng/files/libpng15/1.5.1/libpng-1.5.1.tar.gz/download
5、安装zlib

6、查看效果

测试代码

 <?php
index();
function index(){
phpinfo();
b();
}
function b(){
echo "i love you";
}
//启动xhprof
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
//停止xhprof
$xhprof_data = xhprof_disable();
//取得统计数据
print_r($xhprof_data);
$XHPROF_ROOT = realpath(dirname(__FILE__) . '/');
echo $XHPROF_ROOT;
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/callgraph_utils.php";
//保存统计数据,生成统计ID和source名称
$xhprof_runs = new XHProfRuns_Default();
print_r($xhprof_runs);
$run_id = $xhprof_runs->save_run($xhprof_data, "test"); //source名称是xhprof_foo
//弹出一个统计窗口,查看统计信息
echo "<script language='javascript'>window.open('../xhprof_html/index.php?run=" . $run_id . "&source=test');</script>";
?>

 

PHP性能检测与优化—XHProf 安装的更多相关文章

  1. PHP性能检测与优化—XHProf 数据阅读

    PHP性能检测与优化—XHProf 数据阅读 一.      效果如下 请求总揽 函数调用情况 二.      参数含义 Inclusive Time              包括子函数所有执行时间 ...

  2. opencv-python教程学习系列9-程序性能检测及优化

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍程序性能检测及优化,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环 ...

  3. SqlServer性能检测和优化工具使用详细

    工具概要 如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等等,又性能低下,而苦逼的你又要对其优化,那么你该怎么办?哥教你,首先你要知道问题出在哪里?如果想知道问 ...

  4. SqlServer性能检测和优化工具使用详细(转)

    转载链接:http://www.cnblogs.com/knowledgesea/p/3683505.html 工具概要 如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,s ...

  5. SqlService性能检测和优化工具

    工具概要 如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等等,又性能低下,而苦逼的你又要对其优化,那么你该怎么办?哥教你,首先你要知道问题出在哪里?如果想知道问 ...

  6. react性能检测与优化

    网页运行最重要的是速度快嘛,那我们怎么知道网页运行的时候,哪些部分快哪些部分慢呢? 我们可以安装react性能检测工具进行检测,通过安装 然后修改app/index.jsx文件 ,在要检测的组件运行之 ...

  7. 【转】 SqlServer性能检测和优化工具使用详细

    http://blog.csdn.net/dcx903170332/article/details/45917387

  8. PHP性能优化工具–xhprof安装

    PHP性能优化工具–xhprof安装,这里我先贴出大致的步骤: 1.获取xhprof 2.编译前预处理 3.编译安装 4.配置php.ini 5.查看运行结果 那么下面我们开始安装xhprof工具吧: ...

  9. Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor

    原文:Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor 一.工具概要     数据库应用系统性能低下,需要对其进行优化 ...

随机推荐

  1. 月薪3万+的大数据人都在疯学Flink,为什么?

    身处大数据圈近5年了,在我的概念里一直认为大数据最牛的两个东西是Hadoop和Spark.18年下半年的时候,我突然发现身边很多大数据牛人都是研究学习Flink,甚至连Spark都大有被冷落抛弃的感觉 ...

  2. windows下Idea结合maven开发spark和本地调试

    本人的开发环境: 1.虚拟机centos 6.5 2.jdk 1.8 3.spark2.2.0 4.scala 2.11.8 5.maven 3.5.2     在开发和搭环境时必须注意版本兼容的问题 ...

  3. C#调用存储过程的ADO.Net

    using System.Data.SqlClient; //如果存储过程没有输入和输出参数,而且不返回查询结果 SqlCommand cmd = new SqlCommand("存储过程名 ...

  4. K3 Wise 常用表【转载】

    在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单.--事务类型select * from ICClassType            where  FT ...

  5. 22.Container With Most Water(能装最多水的容器)

    Level:   Medium 题目描述: Given n non-negative integers a1, a2, ..., an , where each represents a point ...

  6. Hadoop Hive概念学习系列之什么是Hive?

    参考  <Hadoop大数据分析与挖掘实战>的在线电子书阅读                   http://yuedu.baidu.com/ebook/d128cf8e33687e21 ...

  7. TextInput

    TextInput /** TextInput 是一个允许用户在应用中通过键盘输入文本的基本组件* 本组件的属性提供了多种特性的配置,如自动完成,自动大小写,占位文字,键盘类型等* 常用:* plac ...

  8. jQuery Validate验证框架详解(jquery.validate.min.js)

    原博客 jQuery Validate验证框架详解 jQuery校验官网地址:https://jqueryvalidation.org/ 一.导入js库 <script type="t ...

  9. centos6+如何对外开放80,3306端口号或者其他端口号

    1.查看防火墙对外开放了哪些端口 [root@hadoop110 ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt sour ...

  10. flask之werkzeug

    密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性. 加密存储:通过一定的变换形式,使得密码原文不易被识别. 密码加密的几类方式: 明文转码加密:BASE64, 7BIT等,这种方式只是个 ...