我如何阅读qcachegrind的UI?

Del*_*D0D 20 php xdebug xdebug-profiler

qcachegrind用来查看由创建的配置文件日志Xdebug.我可以很好地查看文件,但我不知道我在看什么.

我已经尝试了谷歌,但我只是不断获得安装教程,没有关于如何理解显示器.

  1. 以下qcachegrind显示的内容告诉我有关我的应用程序的信息
  2. 我可以从这个文件中查看更多内容,还是这些所有可用数据?

(请在新标签页中打开图片以获得更好的视图)


在此输入图像描述

Tom*_*Tom 28

像qcachegrind和kcachegrind这样的工具可视化Xdebug PHP探查器的输出.探查器的输出实际上是所有PHP函数调用的日志,具有相应的开始时间,执行时间和层次结构.

典型视图如下图所示:

Laravel App

在左侧是'Flat Profile'.它列出了从最耗时到最省时的所有单个函数调用.'包含' 列显示该函数消耗的时间,包括被调用者."自我"列显示除了被调用者之外的函数所花费的时间."Called"和"Function"列分别显示调用函数的次数和函数的名称(加上命名空间).

在右侧,可以使用各种视图来显示呼叫者和被叫者.呼叫者和被叫者对应于左侧选择的功能.

在我顶部的屏幕截图中,打开了"Callee Map".每个矩形是所选函数(被调用者)中的函数调用,并且其中的每个rectale是被调用者的被调用者.大小对应于相对'Incl'.时间.

在底部,"所有被调用者"视图按您喜欢的任何属性显示所选功能顺序的被调用者.

更详细的视图如下所示:

来电者和被叫者

这是根据"自我"时间排序的Laravel数据库函数的函数.您可以清楚地看到不同的函数调用如何相关以及哪些函数占用的时间最多:PDOStatement :: execute.这并不奇怪,因为它是一个连接到外部数据库,查询并等待结果的函数.

返回原始屏幕截图.它告诉您,您的应用程序在PHP的session_start功能中花了很多时间(很多时间).99.8%的自我时间显示了这一点.

  • 1单位是1 / 1.000.000秒(https://xdebug.org/docs/profiler),也就是1微秒(us,µs)。您可以在相对时间和绝对时间之间进行选择。 (2认同)
  • 总结得很好。很有帮助。感谢您花时间帮助别人。 (2认同)