如何阅读 qcachegrind 的 UI?

2022-08-30 12:55:27

我正在使用 查看由 创建的配置文件日志。我可以很好地查看文件,但我不知道我在看什么。qcachegrindXdebug

我尝试过Google,但我只是不断获得安装教程,没有关于如何理解显示的内容。

  1. 下面的qcachegrind显示屏告诉我关于我的应用
  2. 我是否可以从此文件中查看更多内容,或者这是所有可用数据?

(请在新选项卡中打开图像以获得更好的视图)


enter image description here


答案 1

工具喜欢并可视化Xdebug PHP分析器的输出。探查器的输出实际上是所有 PHP 函数调用的日志,具有相应的开始时间、执行时间和层次结构。qcachegrindkcachegrind

典型视图如下图所示:

Laravel App

左侧是“平面轮廓”。它列出了从最耗时到最不耗时的所有单个函数调用。“Incl.”列显示函数(包括被调用方)所消耗的时间。“Self”列显示函数所花费的时间(不包括被调用方)。“被调用”和“函数”列分别显示调用函数的次数和函数的名称(加上命名空间)。

在右侧,可以使用各种视图来可视化呼叫者和被调用方。调用方和被调用方对应于左侧选择的函数。

在我顶部的屏幕截图中,“被叫方地图”被打开。每个矩形都是所选函数(被叫方)内的一个函数调用,其中的每个矩形都是被调用方的被调用方。大小对应于相对的“Incl”。时间。

在底部,“所有被调用方”视图按您喜欢的任何属性显示所选函数顺序的被调用方。

更详细的视图如下所示:

Callers and callees

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

回到你的原始截图:它告诉你你的应用程序大部分时间都花在PHP的功能上(99.8%)。session_start


答案 2

推荐