php7 gitbook,php7性能分析扩展工具xhprof
发布日期:2021-06-24 17:42:10 浏览次数:3 分类:技术文章

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

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

66d61eb5a8661a92f993c61aab4de346.png

4d07af0c50115b17e1bf403b9104bf73.png#php.ini配置

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

extension=xhprof.so

xhprof.output_dir=/tmp/xhprof

#重启php-fpm

service php-fpm restart

7b0f413cba704c3265e09dc724fcaad1.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 '

29dc43d43ece83252257cdd1952982c7.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

623fa6f328d7273142728b9009f6237a.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。

采样报告图:

67cc5efdc18b389da65cd25f749f24cf.png

4f4d1928d58107018b04847db7d6d71f.png

转载地址:https://blog.csdn.net/weixin_34190683/article/details/115144245 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php 字符转数字,PHP怎么将字符串转换成数字
下一篇:php 安装zip,php7.4安装zip扩展

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月03日 12时49分41秒