【问题标题】:How to get the symfony page load time?如何获取 symfony 页面加载时间?
【发布时间】:2012-03-15 16:55:15
【问题描述】:

我有一个 symfony 1.4.x 应用程序,希望能够显示页面加载时间。

在开发环境中,加载时间显示在调试工具栏中。

如何在 app/%APP_NAME%/templates/layout.php 中获取该页面的加载时间?

谢谢

【问题讨论】:

    标签: symfony1 symfony-1.4


    【解决方案1】:

    一般来说,要测量 php 中的执行时间,您可以使用类似的方法:

    $start = microtime(true /*get as float*/);
    
    //some code goes here (i.e. your symfony request dispatching)
    
    $end = microtime(true);
    echo sprintf("some code executed for %.3f seconds", $end - $start);
    

    Symfony 框架的诀窍在于将代码注入到合适的位置,我的建议是:

    • 使用过滤器链(如果您熟悉此机制)。只需在任何其他过滤器之前插入您的过滤器,记录第一个 $start 时间戳,并计算布局文件中的差异
    • 或者恕我直言,更丑陋,但更准确 - 破解 symfony 前端控制器以在调度调用之前记录您的 $start 时间戳

    当然,在布局文件中计算页面加载时间的差异有它的缺点,因为它不计算整个页面的渲染时间,只是到布局渲染的那一刻(这是可以接受的,因为渲染布局是最后一个任务之一)请求调度,但布局并不总是呈现)

    要解决这个问题,您可以在请求结束时使用过滤器来输出 javascript,这会将页面加载时间附加到文档(几乎是 symfony 使用它的调试工具栏所做的)

    【讨论】:

    • 我希望能够调用任何跟踪页面处理时间的内置 symfony 函数。
    • 我不建议这样做,因为 Symfony 的分析非常昂贵,而且在开发环境之外启用它会很麻烦。
    猜你喜欢
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2011-07-08
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多