0

我有一个实时网站,我希望有一个像 PHP 分析器这样的选项,它只在请求时执行(即当向 url 添加一个参数时,比如 ?_profiler=on)。

我知道在实时站点上运行完整的分析器是非常丑陋的事情,但我想检查哪些函数在执行时需要时间。

我需要的是每当调用类(动作)中的函数时,我需要注册函数完成时的开始时间和结束时间并计算它所花费的总时间。

我正在寻找一个简单的 PHP 分析器,这样我就可以包含基库类并在控制器中启动分析器实例,然后它将自动查找操作中的每个函数调用并更新所花费的时间。

有人知道这种 PHP 分析器吗?请帮助找出或任何人都可以给我一个想法如何做到这一点?

4

1 回答 1

1

我在 php.ini(或 php.d/xdebug.ini)中使用带有以下选项的 XDebug 探查器:

xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1

这意味着探查器在默认情况下是禁用的,但是当您将“?XDEBUG_PROFILER”添加到您的获取查询(例如,site.com/page?XDEBUG_PROFILE)时,xdebug 开始分析并创建适当的日志文件。您可以使用 xdebug.profiler_output_dir 选项指定放置它们的位置。

然后您可以使用一些 Web 前端应用程序来解析 xdebug 日志文件。好的是:

http://code.google.com/p/webgrind/

您需要将它安装在您的网络服务器上。它基于 xdebug.profiler_output_dir 选项并自动获取日志文件。

于 2012-09-14T08:18:58.340 回答