PHP性能分析工具xhprof的安装使用与注意事项

PHP性能分析工具xhprof的安装使用与注意事项

前言

xhprof由facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署。

它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时。

下面主要讲一下安装和使用过程

 

1、安装

(1)下载和解压

1
2
wget http:
//pecl
.php.net
/get/xhprof-0
.9.4.tgz
tar
 zxvf xhprof-0.9.4.tgz

(2)编译和运行

1
2
3
4
5
cd
 xhprof-0.9.4/extension/
phpize 
//
此语句编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件,一般存放在
/usr/local/php/bin/
目录下
.
/configure
 --with-php-config=/usr/local/php/bin/php-config
make
 && make install
mkdir
 /tmp/xhprof

 

PHP性能分析工具xhprof的安装使用与注意事项

 

(3)编辑php.ini:

1
2
3
[xhprof]
extension = xhprof.so
xhprof.output_dir=
/tmp/xhprof

xhprof.output_dir是分析生成日志的保存路径

(4)安装插件

最后返回数组,就表示安装好了。具体哪些值是什么意思先别管,因为下面有UI的配置。会很直观!

1
yum -y 
install
 libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch

自动安装

1
yum -y 
install
 graphviz

 

(5)插入代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//
找到你要分析的代码,在代码开始处添加,start profiling,将会统计内存占用情况
xhprof_enable(XHPROF_FLAGS_MEMORY);
//
具体代码
//
在代码结束位置添加
$xhprof_data = xhprof_disable(); 
//
 stop profiler, display raw xhprof data for the profiler run
include_once (
"/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php"
); 
# 请注意设置站点 include_path 权限
include_once (
"/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php"
);
$xhprof_runs = new \XHProfRuns_Default();
//
 Save the run under a namespace "xhprof_foo".
//
 **NOTE**:
//
 By default save_run() will automatically generate a unique
//
 run id for you. [You can override that behavior by passing
//
 a run id (optional arg) to the save_run() method instead.]
$xhprof_runs->save_run($xhprof_data, 
"xhprof_foo"
);

(6)查看

给(2)中的xhprof-0.9.4/xhprof_html 配置一个可以访问的站点,可以简洁的使用php内置的server

1
2
cd
 xhprof-0.9.4/xhprof_html
php -S 0.0.0.0:8990

然后访问ip+端口就可以报告了。

 

2、使用说明

  • Function Name:方法名称。

  • Calls:方法被调用的次数。

  • Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。

  • Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)

  • IWall%:方法执行花费的时间百分比。

  • Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)

  • EWall%:方法本身执行花费的时间百分比。

  • Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)

  • ICpu%:方法执行花费的CPU时间百分比。

  • Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)

  • ECPU%:方法本身执行花费的CPU时间百分比。

  • Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)

  • IMemUse%:方法执行占用的内存百分比。

  • Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)

  • EMemUse%:方法本身执行占用的内存百分比。

  • Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)

  • IPeakMemUse%:Incl.MemUse峰值百分比。

  • Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)

  • EPeakMemUse%:Excl.MemUse峰值百分比。

注意:

      1、在正式启用前,一定要确认不会影响正常的数据输出。确认输出内容无异后,再上线。

      2、每个url的max_time不要设置的过小。

      3、xhprof会影响线上服务的性能,因此最好只在一台机器上进行监控,或者 修改xhprof.php代码,对请求进行随机监控。

 

原文链接:https://segmentfault.com/a/1190000012478668

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113610.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月14日 下午11:00
下一篇 2021年10月15日 上午6:00


相关推荐

  • Pytest(15)pytest分布式执行用例「建议收藏」

    Pytest(15)pytest分布式执行用例「建议收藏」前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月28日
    7
  • Node.js安装(Linux环境)

    Node.js安装(Linux环境)一 源码安装 下载源码并解压 cd usr local src wgethttp nodejs org dist v0 10 24 node v0 10 24 tar gztarzxvfnod v0 10 24 tar gz 编译安装 cdnode v0 10 24 configurepre usr local node 0 10 24makemakein 配置环境变量 vim etc profileexpor HOME

    2026年3月26日
    2
  • JAVA中单例模式_Java中哪些是单例的

    JAVA中单例模式_Java中哪些是单例的1.说明1)单例模式:确保一个类只有一个实例,自行实例化并向系统提供这个实例2)单例模式分类:饿单例模式(类加载时实例化一个对象给自己的引用),懒单例模式(调用取得实例的方法如getInstance时才会实例化对象)(java中饿单例模式性能优于懒单例模式,c++中一般使用懒单例模式)3)单例模式要素:a)私有构造方法b)私有静态引用指向自己实例c)以自己实例为返回值的公有静态方法2.实例饿单例…

    2022年8月11日
    6
  • goland激活码永久 3月最新注册码[通俗易懂]

    goland激活码永久 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    74
  • iOS 中 Touch ID得使用方法「建议收藏」

    iOS 中 Touch ID得使用方法

    2022年1月27日
    49
  • 第二届全国大学生网络安全精英赛初赛错题笔记

    第二届全国大学生网络安全精英赛初赛错题笔记(一)1.通信保密阶段主要威胁:搭线窃听和密码分析主要措施:数据加密保护机密性和完整性开始标志:香农的《保密系统的信息理论》2.信息安全的阶段四个阶段:通信安全、计算机安全、信息安全、信息保障3.信息系统安全保障蕴含:生命周期、保障要素、安全特征4.完整性:确保信息在存储、使用、传输的过程中不会被非授权按用户篡改,同时还要防止授权用户对信息进行不恰当篡改,保持信息内外部表示的一致性国际标准化组织:IOS/OSI提供了五种安全服务:以及八类安全机制。五类安全服务:认证(鉴别)服

    2022年5月25日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号