2012-06-27 32 views
4

我用yii + php-fpm + nginx构建了一个站点。然后我试图用xhprof找到瓶颈。 xhprof的结果表明,在一些请求(不是全部)中,函数fastcgi_finish_request花费超过所有执行时间的80%。这很奇怪。函数fastcgi_finish_request花费大部分执行时间

Click to view the full graph output from xhprof

Click to view the form output from xhprof

我用的版本是:

PHP:5.3.8

nginx的:1.0.10

XHProf的:从GitHub的源

为什么函数fastcgi_finish_request需要这么多时间?我应该如何避免这种情况?

+0

我们必须猜测这个问题吗? –

+0

对不起,忘了显示我的问题:为什么fastcgi_finish_request函数会花费那么多时间,以及如何避免这种情况?谢谢! –

+0

什么是CallLogFilter组件?这不是标准的Yii组件。这必须是某种类型的日志记录组件。尝试禁用它。 – Johnatan

回答

0

从php-fpm.org页:

fastcgi_finish_request()是一个PHP特征,即停止响应 输出。 Web服务器立即开始将“缓慢地,并且悲伤地”传输响应给客户端,并且php同时可以在查询的上下文中做很多有用的事情,例如保存会话, 转换下载的视频,处理各种统计, 等

我没有用fastcgi_finish_request()自己还,但如果时间,服务器需要发回迄今所取得的响应输出,算作“执行时间”这个方法在PHP脚本中;这似乎很清楚,为什么这个函数“消耗”了这么多时间,因为它取决于你的服务器和客户端网络连接(例如ping)。

使用本地开发环境时,执行时间会有所不同吗?

相关问题