我试图剖析我的PHP应用程序,但无法理解qcachegrind中的指标。按照截图:
php - 如何理解qcachegrind结果?-LMLPHP

它的功能调用当然。但是什么意思包括列和自我?我在这里应该如何识别需要重构的某种方法?

最佳答案

“自我”是执行功能时内部没有任何包含(和其他函数调用)的时间,“包含”是功能执行的整个时间(包括文件,功能等)。举个例子:

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

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


函数自拍时间将近似为零,但是由于调用了b和c,因此其包含时间将最高,并且包含a,b和c的时间。同样,b self和include时间与未调用任何函数的时间相同。而c self将大约为0,包含时间大约等于d包含时间。

查看您的qcachegrind,您的代码在PDO调用中花费了大量时间。与SQL查询相关的内容。您还希望捕获您的SQL查询并对其进行概要分析,以查看其性能。

输出中有趣的是调用函数的次数。就性能而言,一个函数可能是有效的,但是如果调用太多次,它将累加起来。检查代码是否进行过多的SQL查询。

关于php - 如何理解qcachegrind结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40315289/

10-10 16:53