4

我试图分析我的 php 应用程序,但无法理解 qcachegrind 中的指标。跟随截图: 在此处输入图像描述

当然是它的函数调用。但什么意味着列包括。和自我?我应该如何在这里认识到某些方法需要重构?

4

1 回答 1

7

“self”是执行函数的时间,其中没有任何包含(和其他函数调用),“include”是函数执行的整个时间(包括文件、函数等)。举个例子:

function a()
{
    b();
    c();
}

function b() { // some code }
function c()
{  
   d()
}
function d() { // some code }

函数 a 自身时间将近似为零,但由于它调用 b 和 c,它的包含时间将最高,并包含 a、b 和 c 的时间。同样 b self 和 include time 将与它不调用任何函数相同。而 c self 将大约为 0 并且包括时间大约等于 d 包括时间。

查看您的 qcachegrind,您的代码在 PDO 调用中花费了大量时间。与 SQL 查询相关的内容。您还希望捕获您的 SQL 查询并分析它们以查看它们的运行情况。

输出中还有趣的是调用函数的次数。一个函数在性能方面可能是高效的,但如果调用太多次,就会累加起来。如果进行过多的 SQL 查询,请检查代码。

于 2016-10-29T02:07:16.663 回答