2012-03-15 45 views
1

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

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

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

enter image description here 感谢

回答

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框架的诀窍是在好的地方注入你的代码,我的建议是:

  • 使用过滤器链(如果您熟悉此机制)。只是任何其他记录第一$开始时间戳之前插入您的过滤器,并计算差异在布局文件
  • 或恕我直言难看,但更为精准 - 破解的symfony前端控制器记录调度呼叫之前,你的$开始时间戳
  • 当然

的布局文件页面加载时间计算差已经是缺点,因为它不计算渲染整个页面的时间,只是为了一时布局呈现(其可以接受,因为渲染布局是l之一ast请求调度任务,但不总是呈现布局)

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

+0

我希望能够调用任何追踪页面处理时间的内置symfony函数。 – Patrick 2012-04-23 20:35:31

+0

我不会建议它,因为Symfony的配置文件相当昂贵,并且在开发环境之外启用此功能会很困难。 – 2012-04-24 10:04:14