博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php:使用XHProf查找PHP性能瓶颈
阅读量:7078 次
发布时间:2019-06-28

本文共 2208 字,大约阅读时间需要 7 分钟。

https://www.cnblogs.com/casatwy/archive/2013/01/17/2865241.html

 

XHProf是facebook 开发的一个测试php性能的扩展,本文记录了在PHP应用中使用XHProf对PHP进行性能优化,查找性能瓶颈的方法。

 

不对xhprof做介绍,我相信能搜到这篇文章的你一定已经知道了xhprof是干什么的。

安装很简单,先去github上把源代码拉下来,地址在这儿:

git@github.com:facebook/xhprof.git

  

xhprof文件夹下面应该有这几个文件夹:examples, extension, xhprof_html, xhprof_lib,分别是例子,插件,文档和统计页面,库。另外,在xhprof_html里面有个docs文件夹,里面的index.html是很好的关于xhprof的文档,我就是看的这个。

然后按照以下步骤去做:

cd xhprof/extensionwhich php-config  #记录下php-config的路径,接下来要用。phpize./configure --with-php-config=/usr/bin/php-config #此处的地址就是上面你记录下来php-config的地址makesudo make install

  编译完成安装好之后,还要去修改一下php.ini,在php.ini的最后添加这样一些内容

[xhprof]extension=xhprof.so;下面的这个地址是用来保存测量记录的目录,在页面输出测量得到的数据的时候,它会自动到这儿来找输出的文件。xhprof.output_dir=/tmp

  然后重启apache使得php.ini生效

sudo apachectl restart

  这时候就xhprof就算是装好了。使用起来很简单,在你需要测试的代码的首尾各添加xhprof_enable()和xhprof_disable()就好了。举个例子:

#!/usr/bin/phpxhprof_enable();foo();$data = xhprof_disable();var_dump($data); //此时$data里面保存的数据就是foo()这个函数的运行开销等的数据。function foo(){    phpinfo();}

  如果需要在页面显示,那也很简单,xhprof下面有一个xhprof_html的文件夹,你需要让这个文件夹能够让你的浏览器通过http服务访问到。我就放在/var/www里面了,这样的话我访问它的路径就是:

http://localhost/xhprof_html/index.php

  当然,对应的测试页面也需要修改:

#!/usr/bin/phpxhprof_enable(XHPROF_FLAGS_CPU+XHPROF_FLAGS_MEMORY);//加上这个参数可以使得xhprof显示cpu和内存相关的数据。foo();//把要测量的函数用xhprof_enable和xhprof_disable包围起来。$data = xhprof_disable();//得到统计数据之后,以下的工作就是为页面显示做准备。$xhprof_root = "/var/www/xhprof";//这里填写的就是你的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, "test");//第二个参数在接下来的地方作为命名空间一样的概念来使用/**************************  访问
/index.php?run=$run_id&source=test就能够看到一个统计列表了。 1.
其实就是http://localhost/xhprof_html 2. 你会在/tmp里面找到一个类似这样的文件:50f7ed6689205.test.xhprof,第一个部分就是run_id,当然,程序里面的$run_id跟这个是一样的。 第二个部分的test就是你在save_run里面的第二个参数,第三个部分就是文件后缀不用去管 3. 例子中,要看到统计列表需要访问的地址就是http://localhost/xhpro_html/index.php?run=50f7ed6689205&source=test**************************/function foo(){ phpinfo();}

  

好了,xhprof的安装和使用的介绍就到此为止了。

(EOF)

作者:casatwy 出处:http://www.cnblogs.com/casatwy 欢迎转载,也请保留这段声明。谢谢!

 

你可能感兴趣的文章
开启HDR视觉盛宴:究竟什么视频算得上HDR?
查看>>
阿里云视频点播播放常见问题排查指南
查看>>
Java最全异常讲解
查看>>
Android保持屏幕常亮
查看>>
JS-DOM2级事件对象跨浏览器处理(已封装)
查看>>
用户名和密码校验程序
查看>>
浅析Java RTTI 和 反射的概念
查看>>
Django中用户权限模块
查看>>
Android TransitionDrawable:过渡动画Drawable
查看>>
隐私浏览器 Tor Browser 8.0.7 发布,安全更新版本
查看>>
Veeam发布2016年业绩: 同比增长28%,预订总收入达6.07亿美元
查看>>
慧荣科技发布全球首款商用SD 5.1控制器解决方案
查看>>
spark 计算结果写入mysql 案例及常见问题解决
查看>>
杨博:医疗大数据服务任重道远
查看>>
Mysql复制技术中的主键冲突
查看>>
有源音箱和无源音箱的主要区别
查看>>
浅谈性能测试、压力测试和负载测试
查看>>
视频02.MediaPlayer和VideoView,TextureView的使用
查看>>
thinkphp-union
查看>>
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
查看>>