我如何阅读qcachegrind的UI?

时间:2015-10-13 05:39:39

标签: php xdebug xdebug-profiler

我正在使用qcachegrind来查看由Xdebug创建的个人资料日志。我可以很好地查看文件,但我不知道我在看什么。

我曾尝试使用Google,但我只是不断获得安装教程,而不是如何理解显示效果。

  1. 以下qcachegrind显示告诉我有关我的应用程序的内容
  2. 我可以从此文件查看更多内容,还是所有可用数据?
  3. (请在新标签页中打开图片以获得更好的视图)

    enter image description here

1 个答案:

答案 0 :(得分:20)

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

典型视图如下图所示:

Laravel App

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

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

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

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

更详细的视图如下所示:

Callers and callees

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

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