QCacheGrind 是一个通用的性能分析工具,可以用在PHP(XDebug工具), GoLang(pprof工具)等程序,只要生成的文件符合它的解析协议即可。
关于如何使用xdebug以及如何获取profile文件,请先阅读 https://blog.csdn.net/raoxiaoya/article/details/111984667
xdebug 官方描述:https://xdebug.org/docs/profiler
我使用的额是windows系统,下载程序 qcachegrind
qcachegrind 文档 http://kcachegrind.sourceforge.net/html/Documentation.html
解压后运行 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 次。
右键还可以将其导出到图片。