【问题标题】:Measuring application running time in CakePHP在 CakePHP 中测量应用程序运行时间
【发布时间】:2012-08-27 09:28:00
【问题描述】:

在我的生产服务器中,我需要检查我的应用程序的运行时间(我已经在本地机器上创建了)
但是,当我将 microtime() 放在 AppController 的 beforeFilter 和 afterFilter 之间时,我得到的结果非常小,比如 $runningTime=0.20 秒。
但是将地址写入我的浏览器和看到输出页面之间的时间是 runningTime 的 100 倍。
我需要找出使我的应用程序变慢的泄漏。是否可以捕获我将地址写入浏览器并在浏览器上获取输出之间的时间差?也许我可以找出原因。
我发现了TIME_START 常量,它看起来像是microtime() 的包装器。

【问题讨论】:

  • 在浏览器中查看 Inspector/Firebug 工具的 Network/Timing 选项卡。大部分开销可能是网络延迟,而不是 PHP 脚本本身。
  • 是的。我还用 pingdom 工具检查它。但我需要一些能够自动从我的代码中生成并记录到我的服务器的东西。
  • 你的服务器只能记录服务器上的执行时间。我是说延迟可能在其他地方,您的服务器无法登录,因为它与服务器无关。
  • 如何诊断问题是网络延迟? (我可以在晚上和清晨轻松进入我的网站)

标签: php performance cakephp logging cakephp-2.0


【解决方案1】:

0.2 秒的运行时间对我来说似乎没问题。如果您的脚本在 20 秒内运行,请将开始测量的点移到脚本开头并查看结果。

或者 .. 使用 xdebug profiling 来查看你的 CPU 周期的去向。

【讨论】:

    【解决方案2】:

    见以下网址

    CakePHP 1.3: Measuring Page Execution Time

    以防万一其他人好奇,我通过将以下代码添加到我的 layout.ctp 来解决这个问题。您也可以在控制器中执行此操作并将其作为变量传递,这可能更经典的 MVC 友好,但我希望在网站的每个页面上都这样做,而无需在每个控制器中重复代码

    Page rendered in <?php echo round((getMicroTime() - $_SERVER['REQUEST_TIME']) * 1000) ?>ms.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多