【问题标题】:PHP: Function execution time for debugging [duplicate]PHP:调试的函数执行时间[重复]
【发布时间】:2012-08-10 05:59:39
【问题描述】:

可能重复:
Simplest way to profile a PHP script

有时我的网站加载缓慢,我想追踪导致它的功能。 (或者如果它与我或网络服务器有关) 如何获取每个正在运行的函数的执行时间?

喜欢;

<?php
function A() { }
function B() { }
function C() { }
A();
B();

Trace();
?>

Trace() 将输出:A 在 0.1 毫秒内运行,B 在 1.1 秒内运行,脚本完成。 PHP中有这样的调试功能吗?

附言。我不是说为每个函数应用微时间。

【问题讨论】:

标签: php debugging


【解决方案1】:

用途:

  • XHProf 如果您需要在生产环境中进行分析。它有一个足迹,但它通常是负担得起的。如果脚本意外结束,它不会产生跟踪。

  • XDebug 如果您想在开发和测试环境中进行分析。它通常更可靠,但有明显的足迹;例如,与 XHProf 相比,长时间运行的脚本会生成非常大(100 秒 MB)的文件。

不要使用:

  • APD,因为尽管它在this answer 中被推荐,但它已经非常过时并且看起来不再被开发(根据其 PECL 页面,2004 年最后一次发布)

PS:我个人的建议:如果你有时间的话就和他们一起玩,否则就在你的开发环境中设置 xdebug。

【讨论】:

  • 感谢回复,我马上就选它作为答案,但是我的问题是关于生产环境的。这是我无法访问的典型 linux 托管服务器。他们的MySQL服务器可能有问题导致加载缓慢,但是在我的开发环境中,我使用的是自己的MySQL服务器,所以最终我无法找到问题的根源。除了你上面提到的那些,没有其他基本的替代品吗?
  • 唔,这种调试只能通过安装PHP扩展来进行;如果您没有对服务器的 root 访问权限,那么您唯一能做的就是依赖微时间基准测试:/
  • 好吧,伙计,我想我会订购一个 VPS 或类似的 - 无论如何我的节点服务器都需要它。 :p 再次感谢。
  • XHProf 的最新链接是:pecl.php.net/package/xhprof
【解决方案2】:

【讨论】:

    【解决方案3】:

    我不会在您的生产站点上执行此操作,但如果您可以在测试设置中复制问题,请使用分析来确定您将所有执行时间都花在了哪里。您需要安装 XDebug 或同等产品。 http://xdebug.org/docs/profiler

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 2011-07-05
      相关资源
      最近更新 更多