• Xhprof的安装


    • 简介:XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf分析报告有助于理解被执行的代码的结构,它有一个简单的HTML的用户界面( PHP写成的)。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。
    • 编译安装
    1. 下载Xhprof:https://pecl.php.net/package/xhprof
    2. 自行解压【如果不会,这个可以百度了,的学习了】
    3. cd xhprof/extension【就是进入到你解压的目录里面】
    4. 执行:/path/to/php/bin/phpize【这个就是你的phpize目录,找到自己的路径或者直接运行phpize,还是找不到就whereis phpize应该可以找到phpize】
    5. 执行:make && make install
    6. 这里就算编译完成了
    •  配置php.ini
    1. 添加以下几行【什么?找不到php.ini。。。。那就whereis php.ini】:

      [xhprof]
      extension=xhprof.so
      xhprof.output_dir="/path/output/dir"  #这个目录是分析性能输出目录
    • 配置nginx

    .xhprof会将收集到的性能数据按文件(一次数据收集存放一个文件)存放在xhprof.output_dir指定的目录(注意添加写权限)下,并通过xhprof/xhprof_html目录下的PHP脚本程序提供网页形式的展示,所以还需配置web服务提供对该脚本程序的访问,以Nginx为例:

         server {
             listen 8080;
             server_name localhost;
    
             root /path/xhprof/xhprof_html;
             location / {
                index index.html index.php;
                try_files $uri /index.php?$query_string;
             }
            location ~ .php$ {
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
             }
         }

    重启php-fpm && nginx  然后可以浏览器访问了。这个不用说了吧。。。

    • 安装依赖

    xhprof_html提供的Web展示功能可以提供代码调用逻辑图,但依赖于工具dot(即该逻辑图是使用dot语言写的),所以需要额外安装依赖graphviz,例如在CentOS上:yum install graphviz

    • 实战

    要对目标PHP程序进行性能分析,需要在程序中注入xhprof提供的方法调用,来收集性能数据,然后通过命令行执行或HTTP请求来触发。剩下的自己去干吧。。。好运。

  • 相关阅读:
    Docker Warning : the backing xfs filesystem is formatted without d_type support
    docker 版本变化及说明
    CORS 跨域请求
    nginx 用户登录认证
    PipelineDB On Kafka
    Postgres 主从配置(五)
    exec() has been disabled for security reasons
    invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
    未连接到互联网
    github管理代码
  • 原文地址:https://www.cnblogs.com/sahara/p/7207619.html
Copyright © 2020-2023  润新知