5.20. XHProf

简介:

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

https://github.com/facebook/xhprof

安装依赖工具

		
$ sudo apt-get install graphviz

or

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
		
		

编译安装xhprof

		
wget http://pecl.php.net/get/xhprof

tar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2
cp -r xhprof_html xhprof_lib /www/www.example.com/xhprof/
cd extension/
/usr/local/webserver/php/bin/phpize
./configure  –with-php-config=/srv/php/bin/php-config
make && make install
		
		

pecl 安装

# pecl install xhprof
		

指定版本

# pecl install xhprof-0.9.4
		

安装完提示:

Installing shared extensions:     /srv/php/lib/php/extensions/no-debug-non-zts-20060613/

cp /srv/php/lib/php/extensions/no-debug-non-zts-20060613/* /srv/php/lib/php/extensions/
		

增加xhprof.ini

		
cat >> /srv/php/etc/conf.d/xhprof.ini <<EOF
extension=xhprof.so
xhprof.output_dir=/www/logs/xhprof
EOF
		
		

分析日志输出在/www/logs/xhprof目录

检查安装是否成功

# /srv/php/bin/php -m | grep xhprof
xhprof
		

例 5.8. xhprof/sample.php

			
<?php

function bar($x) {
  if ($x > 0) {
    bar($x - 1);
  }
}

function foo() {
  for ($idx = 0; $idx < 5; $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);


$XHPROF_ROOT = realpath(dirname(__FILE__) .'/..');
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "---------------\n".
     "Assuming you have set up the http based UI for \n".
     "XHProf at some address, you can view run at \n".
     "http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n".
     "---------------\n";
			
			


5.20.1. XHGui

https://github.com/preinheimer/xhgui




原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

目录
相关文章
|
机器学习/深度学习 人工智能 编解码
阿里 DSW 试用心得——用 PAI-DSW 修复老照片
通过试用阿里 DSW 了解了命令行和 SD WebUI 两种方式进行老照片修复的相关知识
1158 1
阿里 DSW 试用心得——用 PAI-DSW 修复老照片
|
8月前
|
机器学习/深度学习 人工智能 算法
探索人工智能:从基础到高级编程技巧
本文将深入探讨人工智能(AI)的各个方面,包括其定义、历史、应用领域以及编程技巧。我们将通过简单易懂的语言和实际代码示例,帮助读者更好地理解和掌握AI技术。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
存储 Python
|
设计模式 Python
Python:设计模式之门面模式
Python:设计模式之门面模式
84 0
|
前端开发
ant-design-vue运行时动态切换主题色(1)
ant-design-vue运行时动态切换主题色(1)
553 0
ant-design-vue运行时动态切换主题色(1)
|
监控 数据可视化 安全
电梯行业的数字化转型,精细化管理开启新的红利窗口
以前,我们靠粗放型的经营策略抢占市场,但随着产品同质化竞争越来越激烈,企业要生存下去就需要‘练好内功’,通过精细化、数字化的管理手段来提升经营效益。
25347 1
电梯行业的数字化转型,精细化管理开启新的红利窗口
在家怎么用手机连接到电视?
苹果手机下滑菜单上的“荧幕输出”或者“Air play镜像”就是投屏功能,连接到电视后就可以在电视屏幕上看到手机的所有操作。
969 0