说实话,第一次知道xhprof是在某次小型聚会上,当时echo演示了一下xhprof的作用,并稍作了一些介绍。嗯横,当时出了点小故障,xhprof,安装一直失败,最后就看了一下代码和一些图形界面分析的演示。
由于昨天刚刚安装ubuntu开始了我的装B之旅,所以我偷偷的看了看xhprof,想看看是否能够正常安装。却发现,原来是这样的简单。。。
$wget http://pecl.php.net/get/xhprof-0.9.2.tgz
嗯,这个版本是pecl上最新的版本了。很久没有更新过了。
$tar zxf xhprof-0.9.2.tgz
$cd xhprof-0.9.2
$apt-get install php5-dev
这一步必须,否则无法使用phpize来编译这个so,大约需要20多M的下载,安装完之后,继续。。
$cd extension
$phpize
$./configure –with-php-config=/usr/bin/php-config
这是由于我们的PHP也是apt-get 回来的,所以就不用变了啦。
$make && make install
编译完后,会提示你make test
$make test
当然,在运行途中没有出错的话,可以不运行。
然后,到ini存放的目录里建一个xhprof.ini
$cd /etc/php5/conf.d/
$vim xhprof.ini
输入以下内容。。。
[xhprof]
extension=xhprof.so
xhprof.output_dir=/opt/xhprof/
上面这个dir默认是不存在的,所以需要到/opt/目录下新建一下这个目录。反正都是在自己的机器上,直接chmod 0777 就完事了
嗯横,现在重启一下apache2
$/etc/init.d/apache2 restart
看一下PHPINO,会发现里面多了xhprof了,就两行信息。。。
测试代码可以看一下官方的documention。地址在:http://mirror.facebook.net/facebook/xhprof/doc.html
可以根据doc中的例子写一个简单的代码测试一下:
- <?php
- function bar($x) {
- if ($x > 0) {
- bar($x - 1);
- }
- }
- function foo() {
- for ($idx = 0; $idx < 2; $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);
Over了