from:http://www.sourcejoy.com/php_dev/xhprof_install_and_usage.html
libpng:
先安装...
graphviz-2.26.3.tar.gz安装dot
64bit:./configure --enable-swig=no --with-extralibdir=/usr/lib64 --with-expatlibdir=/usr/lib64
make
make install
测试:
dot -T png 如果不报错就ok了
作者:北风发布时间:June 3, 2010分类:PHP
最近公司web服务器老是耗费大量CPU,上面安排我协助搞运维的同事查问题,查了配置,反向代理服务器等外围环境没发现什么大问题,接下来只有查程序了。但程序怎么查呢?不能一句句读代码吧,那样不可靠也不科学,所以必须要有工具对应用程序进行测试(我们的应用是PHP开发的),百度了一下(原谅哥的不专业)发现了XHProf这么个东西,是Facebook开源的一个PHP性能检测程序,大致看了一下,很棒,里面有很多直观的数据来说明问题,比如调用次数、执行时间、内存使用、CPU占用等。有了这个东西,报告就好写啦!这里对这个程序的安装和使用做个简单记录。
废话不说,直接进主题。
编译安装
获取源代码包
root@sourcjoy>wgethttp://pecl.php.net/get/xhprof-0.9.2.tgz
解压
root@sourcjoy>tar zxf xhprof-0.9.2.tgz
root@sourcjoy>cd xhprof-0.9.2
复制web访问目录到web应用目录
root@sourcjoy>cp -r xhprof_html xhprof_lib /var/www/html/#复制xhprof的展示页面目录和库目录到web目录下,可以为xhprof_html建个虚拟目录来访问,也可以把这两个目录拷贝到应用的根目录下。
root@sourcjoy>cd extension/
编译插件
root@sourcjoy>/usr/local/webserver/php/bin/phpize
root@sourcjoy>./configure --with-php-config=/usr/local/webserver/php/bin/php-config
root@sourcjoy>make
root@sourcjoy>make install
注意:这里安装的时候可能会出现访问php.ini没权限的问题,请把php.ini的权限改成666:
chmod 666 /usr/local/webserver/php/etc/php.ini
配置 php.ini 文件
root@sourcjoy>vi /usr/local/webserver/php/etc/php.ini在合适位置加入以下内容:
[xhprof]
extension=xhprof.so;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
;xhprof.output_dir=<directory_for_storing_xhprof_runs>xhprof.output_dir=/var/logs/xhprof
重启web服务器
为了更加清晰显示程序执行、调用结构,安装Graphviz,如果安装了Graphviz,XHProf会用比较牛的图形方式展现统计数据。
获取源码包
root@sourcjoy>wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
root@sourcjoy>tar zxf graphviz-2.24.0.tar.gz
root@sourcjoy>cd graphviz-2.24.0
编译安装
root@sourcjoy>./configure
root@sourcjoy>make
root@sourcjoy>make install
接下来在要统计的php应用中加入以下语句:
xhprof_enable();//统计的代码部分之前加,如果要显示CPU占用 可以加入XHPROF_FLAGS_CPU参数,内存是XHPROF_FLAGS_MEMORY,如果两个一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY,如:xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
xhprof_disable();//统计的代码部分之后加
这样xhprof就可以统计当前页面的函数性能情况了。xhprof会把每次访问加入统计代码的页面的性能统计结果在指定目录下生成一个文件,文件名命名方式为:本次访问的系统ID.命名空间,每次刷新页面都会重新生成一个文件,每个的系统ID都不同。
然后通过xhprof_html目录的http访问url来查看结果。如:http://app/xhprof_html/?run=运行id&source=命名空间(其中运行ID和命名空间可以根据xhprof生成的文件名来确定)
下面是个例子:
<?php
function a(){
echo 'a';
}
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); //XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
// run program
a();
// stop profiler
$xhprof_data = xhprof_disable(); //返回运行数据
// 下面是保存运行数据
include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "sourcejoy"); //第一个参数是 xhprof_disable()函数返回的运行信息,第二个参数是自定义的命名空间字符串(任意字符串),返回运行ID。
?>
名词:
1.Inclusive Time :包括子函数所有执行时间。
2.Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
3.Wall Time:花去了的时间或挂钟时间。
4.CPU Time:用户耗的时间+内核耗的时间
5.Inclusive CPU:包括子函数一起所占用的CPU
6.Exclusive CPU:函数自身所占用的CPU
最后要说点,这个xhprof程序有点小bug,还不支持php5.2一下的版本,不过这都是小问题,关键是能直观告诉我们程序的性能问题,这个很重要,我们自己开发程序的时候用这个进行性能检查是很不错的。
-END-
本文是sourcejoy.com的原创文章,要转载必须写明来自http://www.sourcejoy.com/如果没表明转载自本站,可能会受到一封律师信哦~
分享到:
相关推荐
xhprof安装步骤xhprof安装步骤
xhprof是facebook研发的一款分析php性能的工具,可以分析方法的使用次数以及执行时间等,还可以生成报表
首先,需要从源代码进行安装,包括使用wget命令下载XHProf的压缩包,解压文件,复制相关目录到Web服务器的相应位置,以及配置PHP扩展。在安装扩展的过程中,需要使用phpize命令,然后执行configure、make和make ...
本文是介绍了关于整个过程部署laravel与xhprof安装的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 前提成功安装了LNMP集成环境 (lnmp.org 即可快速安装),保证network正常运行 ...
为了将Xhprof的分析结果以图形化展示,我们需要下载Graphviz并安装。安装完成后,将`dot.exe`可执行文件的路径添加到系统的PATH环境变量中。 在Xhprof的分析结果中,有一个名为`xhprof_html`的目录,里面包含HTML...
XHProf需要编译安装,通过执行phpize、./configure、make、sudo make install命令进行编译和安装。安装完成后,需要将生成的xhprof.so文件添加到php.ini文件中,并重启Apache服务器。 在安装完成后,可以通过执行...
下面主要讲一下安装和使用过程 1、安装 (1)下载和解压 wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar zxvf xhprof-0.9.4.tgz (2)编译和运行 cd xhprof-0.9.4/extension/ phpize //此语句编译PHP扩展的...
1. **安装与配置**:首先,用户需要将下载的压缩包解压,然后将xhprof目录放置到PHP的扩展目录下。接着,需要编辑php.ini文件,添加对xhprof的扩展加载,如`extension=xhprof.so`。为了使xhprof正常工作,还需要设置...
1. **安装**:首先,你需要将"xhprof-php7.zip"文件解压,然后按照文档指示配置并编译xhprof库,将其集成到PHP环境中。 2. **开启xhprof**:在需要分析的PHP脚本中,通过`xhprof_enable()`函数启动xhprof。 3. **...
在实际使用中,"midoks-md_xhprof-5cbbebc"这个压缩包可能包含了MD_XHProf的源代码或者预编译的二进制文件,以及相关的安装指南和示例。安装和配置MD_XHProf通常涉及以下几个步骤: 1. **下载与解压**:首先从源...
xhprof_enable(XHPROF_FLAGS_MEMORY + XHPROF_FLAGS_CPU+XHPROF_FLAGS_NO_BUILTINS); $xhprof_on = true; //这里是你的代码 if ($xhprof_on) { $name_space="IndexController"; $xhprof_data = xhprof_disable...
3. **启动XHProf**:在代码中使用`xhprof_enable()`启动分析,结束后使用`xhprof_disable()`停止并获取分析数据。 ### 使用流程 1. **运行应用**:在开启了XHProf的情况下运行PHP应用,它会默默收集性能数据。 2....
安装XHProf通常包括以下步骤: 1. **下载XHProf**:找到适合你PHP版本的XHProf二进制文件,这可能需要在GitHub或其他开源社区上搜索。 2. **配置PHP**:将XHProf的库路径添加到PHP的`extension_dir`,并在`...
Xhprof 官方文档 -- 网上好多xhprof 的介绍,很少看到官方文档, Here it is. wish you enjoy it.
安装XHProf相对简单,但是需要通过几个步骤来完成。首先,通过wget命令下载XHProf的源代码包,解压缩后,使用phpize生成configure文件。接着,通过configure命令指定php-config文件的位置,并进行编译安装。安装完成...