如何理解qcachegrind结果?
How to understand qcachegrind results?
我试图分析我的 php 应用程序,但无法理解 qcachegrind 中的指标。跟随截图:
当然是它的函数调用了。但是什么意思列包括。和自己?我在这里应该如何识别某些方法需要重构?
"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 时间将是相同的,因为它没有调用任何函数。而 c self 将大约为 0,包括时间大约等于 d 包括时间。
查看您的 qcachegrind,您的代码在 PDO 调用中花费了大量时间。与 SQL 查询相关的内容。您还想捕获 SQL 查询并分析它们以查看它们的表现。
输出中同样有趣的是函数被调用的次数。一个函数在性能方面可能是高效的,但如果调用太多次,它就会累加起来。检查代码是否进行了太多 SQL 查询。
我试图分析我的 php 应用程序,但无法理解 qcachegrind 中的指标。跟随截图:
当然是它的函数调用了。但是什么意思列包括。和自己?我在这里应该如何识别某些方法需要重构?
"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 时间将是相同的,因为它没有调用任何函数。而 c self 将大约为 0,包括时间大约等于 d 包括时间。
查看您的 qcachegrind,您的代码在 PDO 调用中花费了大量时间。与 SQL 查询相关的内容。您还想捕获 SQL 查询并分析它们以查看它们的表现。
输出中同样有趣的是函数被调用的次数。一个函数在性能方面可能是高效的,但如果调用太多次,它就会累加起来。检查代码是否进行了太多 SQL 查询。