当前位置: 首页 > 工具软件 > md_xhprof > 使用案例 >

制作一个自己的xhprof测试平台

张博涛
2023-12-01

制作一个自己的xhprof测试平台

1、首先安装php开发环境,比如lnmp。

2、安装xhprof,记住从github上面下载(https://github.com/phacility/xhprof),不要从pecl.php.net站点下载,可能不支持高版本(比如本人使用的php5.4)。

         安装步骤:

                   1       解压文件

                   2       cd extension

                   3   /usr/local/php/bin/phpize

                 4  ./configure--with-php-config=/usr/local/php/bin/php-config --enable-xhprof

                   5  make

                   6       make install

                   7       cd /usr/local/php/etc

                   8       vim php.ini  在其中添加

                            extension=xhprof.so

                            xhprof.output_dir="/www/xhprof/tmp"  //注意创建此目录

                   重启lnmp后,查看phpinfo输出信息。查看到xhprof相关信息即代表成功。

 

3、搭建一个站点,我将代码放在/www/xhprof目录下,拷贝刚才下载到xhprof安装包中的xhprof_html和xhprof_lib  2个目录。

 

创建测试php文件(见代码xhprof_html/test.php)

 

4、安装扩展使其支持图形化

         yum-y install dot*

         yuminstall graphviz

 

5、修改php.ini配置文件,将disable_functions中proc_open删除。

 

6、修改php中auto_prepend_file和auto_append_file这2个配置(以下2个文件参见代码)

         auto_prepend_file=/www/xhprof/xhprof_html/header.php

         auto_append_file=/www/xhprof/xhprof_html/footer.php

 

7、修改open_basedir的值,指向/www/xhprof。

 

8、至此该服务器下所有站点都可以产生xphrof相关信息了。

 

【header.php】

<?php

if (extension_loaded('xhprof')) {

    include_once '/www/xhprof/xhprof_lib/utils/xhprof_lib.php';

    include_once '/www/xhprof/xhprof_lib/utils/xhprof_runs.php';

    xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

}

?>

 

【footer.php】

<?php

if (extension_loaded('xhprof')) {

   $profiler_namespace = 'xhprof_foo';

        

         $xhprof_data= xhprof_disable();

        

         $xhprof_runs= new XHProfRuns_Default();

 

         $run_id= $xhprof_runs->save_run($xhprof_data, $profiler_namespace);

 

         echo""."<a target=\" _blank\=\"\"href=\"http://www.xhprof.dev/xhprof_html/index.php?run=" . $run_id ."&source=" .$profiler_namespace. "\">TableView" . "</a>";

         echo"&nbsp;&nbsp;&nbsp;&nbsp;";

         echo""."<a target=\" _blank\=\"\"href=\"http://www.xhprof.dev/xhprof_html/callgraph.php?run=" .$run_id . "&source=" .$profiler_namespace. "\">PhotoView" . "</a>";

}

?>

 

 

【test.php】

<?php

//同时分析CPU和Mem的开销

xhprof_enable(XHPROF_FLAGS_CPU +XHPROF_FLAGS_MEMORY);

 

//要测试的代码 开始

for($i=0;$i<10000;$i++){

         strtoupper(substr(md5(md5(mt_rand())),1,20));

         echo$i.'<br />';

}

//结束测试代码

 

$xhprof_data = xhprof_disable();

 

$XHPROF_ROOT = '/www/xhprof';

 

include_once $XHPROF_ROOT ."/xhprof_lib/utils/xhprof_lib.php";

 

include_once $XHPROF_ROOT ."/xhprof_lib/utils/xhprof_runs.php";

 

$xhprof_runs = new XHProfRuns_Default();

 

$run_id =$xhprof_runs->save_run($xhprof_data, "xhprof_foo");

 

echo ""."<atarget=\" _blank\=\"\"href=\"http://www.xhprof.dev/xhprof_html/index.php?run=" . $run_id ."&source=xhprof_foo\">XHProf" . "</a>";

 类似资料: