xhprof是facebook开源的一款PHP性能监控工具,占用资源极少,甚至可以部署在生产环境中。可以和graphviz结合使用,可以用图片的形式直观的展示代码执行的耗时情况。下面主要说一下安装和使用过程1、安装(一)下载并解压wgethttp://pecl.php.net/get/xhprof-0.9.4.tgztarzxvfxhprof-0.9.4.tgz(二)CompileandRuncdxhprof-0.9.4/extension/phpize//该语句是编译PHP扩展的工具,主要是根据系统信息生成相应的configure文件,一般存放在/usr/local/php/bin/directory./configure--with-php-config=/usr/local/php/bin/php-configmake&&makeinstallmkdir/tmp/xhprof(3)编辑php.ini[xhprof]extension=xhprof.soxhprof.output_dir=/tmp/xhprofxhprof.output_dir是分析生成日志的存放路径(4)安装插件主要是UI的配置yum-yinstalllibjpegfreetypefreetype-devellibjpeg-develliberation-sans-fonts.noarch自动安装yum-yinstallgraphviz(5)Insertcode//找到你要分析的代码,在代码开头添加,开始profiling,会统计内存使用情况xhprof_enable(XHPROF_FLAGS_MEMORY);//具体代码//添加$xhprof_data=代码末尾的xhprof_disable();//停止分析器,显示分析器的原始xhprof数据runinclude_once("~/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php");#请注意设置站点include_path权限include_once("~/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php");$xhprof_runs=new\XHProfRuns_Default();//保存在命名空间“xhprof_foo”下运行。//**注意**://默认情况下save_run()会自动为您生成一个唯一的//运行ID。[您可以通过将运行ID(可选参数)传递给save_run()方法来覆盖该行为。]$xhprof_runs->save_run($xhprof_data,"xhprof_foo");(6)勾选(2)中的xhprof-0.9.4/xhprof_html配置可访问站点阅读(3)xhprof.output_dir目录,直接使用内置的servercdxhprof-0.9.4/xhprof_htmlphp即可-php中S0.0.0.0:8990然后访问ip+端口。2、使用说明FunctionName:方法名。Calls:方法被调用的次数。Calls%:方法调用占同级方法调用总数的百分比。Incl.WallTime(microsec):方法执行所花费的时间,包括子方法的执行时间。(单位:微秒)IWall%:方法执行所花费时间的百分比。不包括。WallTime(microsec):执行方法本身所花费的时间,不包括子方法的执行时间。(单位:微秒)EWall%:执行方法本身所花费的时间百分比。包括。CPU(microsecs):方法执行所花费的CPU时间,包括子方法的执行时间。(单位:微秒)ICpu%:方法执行所花费的CPU时间百分比。不包括。CPU(microsec):方法本身执行所花费的CPU时间,不包括子方法的执行时间。(单位:微秒)ECPU%:执行方法本身所花费的CPU时间百分比。Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:byte)IMemUse%:方法执行占用内存的百分比。Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:byte)EMemUse%:方法本身执行占用的内存百分比。Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)IPeakMemUse%:Incl.MemUse峰值百分比。Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)EPeakMemUse%:Excl.MemUse峰值百分比。
