【问题标题】:Best practice method to find execution time in Zend FrameworkZend Framework 中查找执行时间的最佳实践方法
【发布时间】:2010-07-24 19:12:34
【问题描述】:

我对查找 Zend Framework 应用程序执行时间的最佳/标准方法感兴趣。目前我在 public/index.php 上启动计时器,然后在 Zend_Registry 中注册它,以便稍后调用,然后布局使用它来计算总时间。

有没有更好的方法来做到这一点?我知道这甚至不完全准确,因为 postDispatch() 中仍有(或至少可以)一些执行,这些执行将在视图呈现后运行。

【问题讨论】:

    标签: php zend-framework benchmarking


    【解决方案1】:

    我最终添加了

    $appStartTime = microtime();
    

    在引导程序被实例化之前,并放入

    global $appStartTime;
    @list( $startMilli, $startSeconds, $endMilli, $endSeconds) = explode(' ',$appStartTime . ' ' . microtime());
    $generateTime = ($endSeconds+$endMilli)-($startSeconds+$startMilli);
    printf( '. Generated in %.3fs', $generateTime);
    if ($generateTime > 1) // one second
    {
        Zend_Registry::get( 'logger' )->warn( 'Long page load time of ' . $generateTime . ' on ' . Zend_Controller_Front::getInstance()->getRequest()->getRequestUri() );
    }
    

    在我的 layout.phtml 结尾,作为结束正文标记之前的最后一件事

    【讨论】:

      【解决方案2】:

      我自己使用 webgrind 和 xdebug 分析。这不仅提供了有关总执行时间的信息,还提供了例如给定方法执行了多少次,执行的时间是多少,等等。

      【讨论】:

        【解决方案3】:

        您可能想要考虑启用真正的代码分析器,例如 XHProf

        【讨论】:

        • 虽然这对某些事情来说很好,但我真的不认为它可以用于将执行时间输出到视图中。如果我错了,请纠正我,但这似乎更像是一个分析器,而不仅仅是在页面上显示执行时间。
        猜你喜欢
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 2018-04-10
        相关资源
        最近更新 更多