php混淆 是什么意思,php – KCachegrind解释混淆

“self”表示该函数所用的时间,而不是它调用的任何函数。如果“self”低,“incl”。是高的,那么最优化的最佳地点可能是在一个孩子中(例如,称为函数)。在这种情况下,它看起来像mysql-query大部分时间,所以你可能想优化查询(如果可能)。之所以mysql_qeury有“self”==“incl。”是profiler不能看到函数,因为它是在php运行时之外(例如在mysql客户端库中)做它的工作,

我可能补充说,10067调用mysql_query看起来可怕的可疑。数据库查询是一个非常昂贵的操作。你确定你不能减少查询的数量吗?

编辑:

I can try. But what about the Incl.? How is it 80 in the close and then 70 in the mysql query how does that relate to the total percentage which should be 100%

数字不需要相加。你正在看的,是一个整体的时间的排序列表,这些功能。它不是一个调用图(虽然它会经常发生,以模仿这种方式)。

假设以下代码:

function fn1() {

sleep(1);

fn2();

}

function fn2() {

sleep(98);

}

function fn3() {

sleep(1);

}

fn1();

fn3();

其中可能生成以下输出:

name | incl. | self

main | 100% | 0%

fn1 | 99% | 1%

fn2 | 98% | 98%

fn3 | 1% | 1%

当您按“incl。”对列表排序时,您将查看聚合速度较慢的函数。换句话说,在这里得分高的,不一定慢,但他们调用其他的功能。如果一个函数在“incl”上得分较高。并且有很多调用,你应该考虑尝试减少调用这个函数的数量,或者让函数缓存它的结果(只有当它是一个查询,而不是一个动作)。

当您按“自我”排序时,您将看到占用大部分时间的实际呼叫。这些是你想要微调的功能。在大多数PHP脚本中,您会发现mysql_query支配此字段。如果你有很多调用,再次尝试减少它们或缓存。如果你有很少的调用,那么你可能需要优化sql-query。 PHP调试器不能帮助你。相反,找到实际的查询,并在mysql控制台上运行一个解释。这本身就是一整章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值