欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

facebook工具xhprof的安装与使用-分析php执行性能_PHP教程

程序员文章站 2024-04-04 23:48:18
...
下载源码包的网址

http://pecl.php.net/package/xhprof

facebook工具xhprof的安装与使用-分析php执行性能_PHP教程

上面说了,每个版本适用的php版本。


规划(预先搞清楚思路)



一、这是一个php扩展的形式。我们安装gd2,curl都是php的扩展形式。只不过有的时候编译的时候就安装进去了。
像操作mysql数据库,也是一个mysql.so这样的扩展,安装了扩展,就能调用mysql_query()这些函数。
要操作oracle数据库,也有对应的oracle扩展加到php引擎中去。



现在要把xhprof扩展加到php中去。


很久没使用phpize安装扩展了。我自己忘得差不多了。于是重新去自己的博客找到以前写的文章复习一下。

http://www.cnblogs.com/wangtao_20/archive/2011/03/16/1986508.html




ps:我也在思考,这个东西怎么这么容易忘记。我只知道他的作用。但是完全不记得他的操作步骤。要注意的细节。

看我得想办法以通俗的方式来理解记住它。





二、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=
;储存 XHProf 运行数据的默认目录
xhprof.output_dir=/tmp/xhprof



三、有了这个扩展后,就能在自己的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");


=====================================================

几个扩展函数如下

facebook工具xhprof的安装与使用-分析php执行性能_PHP教程




步骤实施


1、先找到我服务器上php的安装目录,phpize一般都是在安装目录中,如下:

/usr/local/php/bin/phpize

2、找出php-config在哪个目录(下面会用到),我的服务器在:

/usr/local/php/bin/php-config

目的:在下面进行编译的时候,会用到这个文件

./configure --with-php-config=/usr/local/php/bin/php-config



3、找到我服务器上php扩展在哪个目录,不确定的话,我觉得去php.ini中也能看到,如下


extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/" 这个路径感觉有点长。不用去改了php.ini中的设置,目前我觉得没必要(商业与时间成本,这部分还不是制约因素)。按原来的继续放扩展。




现在知道扩展目录为:/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

也就是说,我要把xhprof的源码包解压到这个目录下去(解压后会生成一个新的文件夹)。


那我就要去这个目录下运行phpize(这样方便在这个目录下面生成configure文件),

phpize的特点:在a目录下运行phpize,就会在a目录下生成configure。











得到上面路径,shell命令实践



cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

解压下载到的xhprof压缩包(我不是通过wget下载的,我是把这个压缩直接通过ftp上传到no-debug-non-zts-20060613目录中去)。



tar zxf xhprof-0.9.3.tgz #解压后,里面有个extension文件夹,进入里面去(目的是进入里面去运行phpize),解压后的目录结构如下

facebook工具xhprof的安装与使用-分析php执行性能_PHP教程


cd xhprof-0.9.3/extension/ #切换到这个扩展的源码目录去

在这个目录下面运行phpize,就会在extension目录下生成一个configure文件(这是phpize的机制)


/usr/local/php/bin/phpize

去看一下扩展目录,会发现在extension目录生成了一个configure文件。运行它

facebook工具xhprof的安装与使用-分析php执行性能_PHP教程


======================================


./configure --with-php-config=/usr/local/php/bin/php-config #用到了前面找到的php-config文件。

make && make install

make test
======================================


facebook工具xhprof的安装与使用-分析php执行性能_PHP教程微信