php7 性能检测 扩展,php7性能分析扩展工具xhprof

XHProf 是一个轻量级的分层性能测量分析器。 在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图。 它在报告、后期处理阶段计算了独占的性能度量,例如运行经过的时间、CPU 计算时间和内存开销。 函数性能报告可以由调用者和被调用者终止。 在数据搜集阶段 XHProf 通过调用图的循环来检测递归函数,通过赋予唯一的深度名称来避免递归调用的循环。

XHProf 包含了一个基于 HTML 的简单用户界面(由 PHP 写成)。 基于浏览器的用户界面使得浏览、分享性能数据结果更加简单方便。 同时也支持查看调用图。 XHProf 的报告对理解代码执行结构常常很有帮助。 比如此分层报告可用于确定在哪个调用链里调用了某个函数。

XHProf 对两次运行进行比较(又名 "diff" 报告),或者多次运行数据的合计。 对比、合并报告,很像针对单次运行的“平式视图”性能报告,就像“分层式视图”的性能报告。

一、XHProf安装php扩展# 下载解压扩展包 https://pecl.php.net/package/xhprof(其他仓库:https://github.com/longxinH/xhprof)

wget -c https://pecl.php.net/get/xhprof-2.2.3.tgz

tar -xzvf xhprof-2.2.3.tgz

#生成扩展包so文件

cd xhprof-2.2.3/cd xhprof-2.2.3/

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

61580bf24ad0ecad687766c547b01db0.png

b4ded288f4d3cebe98ab81c086d078e1.png#php.ini配置

vim /usr/local/php/etc/php.ini

extension=xhprof.so

xhprof.output_dir=/tmp/xhprof

#重启php-fpm

service php-fpm restart

f96c612243c9051294e750b3d9d0cd51.png

二、XHProf使用

使用前需要先下载xhprof界面展示代码,放在网站运行目录中。

1.安装xhprof界面代码

从仓库(https://github.com/longxinH/xhprof)中复制xhprof_lib和xhprof_html 两个文件夹到网址运行目录。并修改xhprof_lib文件夹中的callgraph.php文件中type为svg。

图片为svg类型可以解决错误:failed to execute cmd: " dot -Tpng". stderr: `Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gv imap imap_np ismap pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot '

a5eaa9351e83e5d8a2489a7ae44af7fa.png

2.安装graphviz

graphviz 是一个图表生成软件,图标文件xhprof_html/callgraph.php会调用graphviz工具命令。。yum install -y libpng

yum install -y graphviz

yum install -y graphviz-gd<?php

// 开始分析

xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

// 需要分析的代码

// 结束分析

$xhprof_data = xhprof_disable();

*如果安装失败选择源码安装:wget -c https://gitlab.com/graphviz/graphviz/-/package_files/6163716/download

tar -xzvf download

cd  graphviz-2.46.0

make #make后如果有报错直接忽略,直接安装

make install

dot -v

28f0751c580f9fd6af04f3325af1a2d4.png

3.生成采样<?php

ini_set('display_errors', on);

//开启性能分析

xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

// 程序执行完调用

register_shutdown_function(function() {

//停止性能分析

$xhprof_data = xhprof_disable();

include_once  './xhprof_lib/utils/xhprof_lib.php';

include_once  './xhprof_lib/utils/xhprof_runs.php';

$xhprof_runs = new \XHProfRuns_Default();

$run_id = $xhprof_runs->save_run($xhprof_data, 'zx');

// echo $run_id;

});

访问采样:https://server_name/xhprof_html/index.php。

采样报告图:

a2fb241bca090c3bb4eac855c9a384f3.png

d73c4372980c249524951ca6d29353ea.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值