如何理解qcachegrind结果?

时间:2016-10-29 01:50:32

标签: php profiling xdebug qcachegrind

我试图描述我的php应用程序,但无法理解qcachegrind中的指标。截图截图: enter image description here

当然是它的函数调用。但是什么意思是列包括和自我?我怎么能在这里认识到某些方法需要重构?

1 个答案:

答案 0 :(得分:5)

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

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

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

函数自我时间将近似为零,但由于它调用b和c,其包含时间将最高并包含a,b和c的时间。类似地,b self和包含时间将与不调用任何函数相同。而c self约为0,包括时间约等于d包括时间。

看看你的qcachegrind,你的代码花了很多时间在PDO调用中。与SQL查询相关的东西。您还希望捕获SQL查询并对其进行概要分析,以了解它们的工作方式。

输出中也很有趣的是调用函数的次数。一个函数在性能方面可能是有效的,但是如果它被调用太多次,它会加起来。检查代码是否进行了太多的SQL查询。