使用xdebug3的profile文件来分析php程序的性能-QCacheGrind

599 阅读1分钟

QCacheGrind 是一个通用的性能分析工具,可以用在PHP(XDebug工具), GoLang(pprof工具)等程序,只要生成的文件符合它的解析协议即可。

关于如何使用xdebug以及如何获取profile文件,请先阅读 blog.csdn.net/raoxiaoya/a…

xdebug 官方描述:xdebug.org/docs/profil…

我使用的额是windows系统,下载程序 qcachegrind
qcachegrind 文档 kcachegrind.sourceforge.net/html/Docume…

解压后运行 qcachegrind.exe

点击 file --> open,选择存放 profile 文件的目录 D:\phpStudy\PHPTutorial\tmp\xdebug此时啥也看不见,但是里面有文件,切换要筛选的文件类型即可,选择cachegrind.out开头的文件。
在这里插入图片描述
打开之后是这样的
在这里插入图片描述
先贴出我的源码

<?php
ini_set('date.timezone', 'Asia/Shanghai');

function getstr():string {
    $str = "QWERTYUIOPLKJHGFDSAZXCVBNM";
    return $str[rand(0, strlen($str)-1)];
}

$url = 'http://220.249.103.107:20780/job-work';

$headerArr = array(
    'x-token: MS8QttKgHtXT6ZbP'
);

$s = getstr();

echo date('Y-m-d H:i:s', 1596211200);
echo PHP_EOL;
echo date('Y-m-d H:i:s', 1604160000);

可以选择性能指标:耗时,内存
在这里插入图片描述
%号表示以百分比的形式,否则以数值的形式
在这里插入图片描述
在这里插入图片描述
caller 谁调了此函数
callee 此函数又调了哪些函数
count 调用次数
source code 源码

此时点击源码会提示无法找到文件,其实是它的目录拼接错误了。
在这里插入图片描述
点击call graph查看图表展示
在这里插入图片描述
其中 1 x 表示调用了 1 次。

右键还可以将其导出到图片。
在这里插入图片描述