如何阅读 qcachegrind 的 UI?
2022-08-30 12:55:27
工具喜欢并可视化Xdebug PHP分析器的输出。探查器的输出实际上是所有 PHP 函数调用的日志,具有相应的开始时间、执行时间和层次结构。qcachegrind
kcachegrind
典型视图如下图所示:
左侧是“平面轮廓”。它列出了从最耗时到最不耗时的所有单个函数调用。“Incl.”列显示函数(包括被调用方)所消耗的时间。“Self”列显示函数所花费的时间(不包括被调用方)。“被调用”和“函数”列分别显示调用函数的次数和函数的名称(加上命名空间)。
在右侧,可以使用各种视图来可视化呼叫者和被调用方。调用方和被调用方对应于左侧选择的函数。
在我顶部的屏幕截图中,“被叫方地图”被打开。每个矩形都是所选函数(被叫方)内的一个函数调用,其中的每个矩形都是被调用方的被调用方。大小对应于相对的“Incl”。时间。
在底部,“所有被调用方”视图按您喜欢的任何属性显示所选函数顺序的被调用方。
更详细的视图如下所示:
这是按“自我”时间排序的Laravel数据库函数的功能。您可以清楚地看到不同的函数调用如何关联以及哪个函数占用的时间最多:PDOStatement::execute。这并不奇怪,因为它是一个连接到外部数据库,查询它并等待结果的函数。
回到你的原始截图:它告诉你你的应用程序大部分时间都花在PHP的功能上(99.8%)。session_start