【发布时间】:2011-07-23 13:06:25
【问题描述】:
我已经开始了我的第一个比较严肃的 PHP 编程项目,并且很难获得好的分析信息。我使用 xdebug 和 cachegrind 来分析代码,但它假定函数的“自身”执行时间是函数执行所需的总时间减去它调用的任何函数的总时间。
虽然这在本质上是正确的,但当我尝试优化代码时,它并没有提供尽可能多的帮助。例如,我有一个带有两个 if 语句的简单函数,它返回一个包含两个值的数组,根据 xdebug,它占用了总执行时间的 26%。它使用array_key_exists,我可以看到这些函数调用的执行时间大约是1%。我看不到其他 25% 的执行时间是如何与其余代码一起计算的。 if 语句、获取值对、将这些值放入数组并返回数组需要多长时间?
我在文档中遗漏了一些 xdebug 标志吗?或者是否有一个用于 PHP 的分析工具来分析变量分配、运算符、基本数据类型的构造和其他非功能调用?最好不要假设脚本可以通过 Web 服务器获得。
我正在寻找的一个例子是nytprof for perl。请注意,它会分析函数中的每一行代码(除了最后一次推送,它永远不会被执行)。
【问题讨论】:
标签: php performance profiling