如何获取symfony页面加载时间?

时间:2012-03-15 16:55:16

标签: symfony1 symfony-1.4

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

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

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

enter image description here 感谢

1 个答案:

答案 0 :(得分: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前端控制器在发送电话之前记录您的$开始时间戳

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

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