我用 yii + php-fpm + nginx 建了一个站点。然后我试图用 xhprof 找到瓶颈。xhprof 的结果表明,在某些请求(不是全部)中,函数 fastcgi_finish_request 花费了所有执行时间的 80% 以上。这很奇怪。
我使用的版本是:
php:5.3.8
nginx:1.0.10
xhprof:从它的 github 源构建
为什么函数 fastcgi_finish_request 需要这么多时间?我应该如何避免这种情况?
我用 yii + php-fpm + nginx 建了一个站点。然后我试图用 xhprof 找到瓶颈。xhprof 的结果表明,在某些请求(不是全部)中,函数 fastcgi_finish_request 花费了所有执行时间的 80% 以上。这很奇怪。
我使用的版本是:
php:5.3.8
nginx:1.0.10
xhprof:从它的 github 源构建
为什么函数 fastcgi_finish_request 需要这么多时间?我应该如何避免这种情况?
从 php-fpm.org 页面:
fastcgi_finish_request() 是一个 php 功能,可以停止响应输出。Web 服务器立即开始“缓慢而悲伤”地向客户端传输响应,同时 php 可以在查询的上下文中做很多有用的事情,例如保存会话、转换下载的视频、处理各种统计等
我自己还没用过fastcgi_finish_request()
,但是如果时间,服务器需要发回到目前为止做出的响应输出,在PHP脚本中算作这个方法的“执行时间”;看起来很清楚,为什么这个功能“消耗”这么多时间,因为它取决于您的服务器和客户端网络连接(例如 ping)。
使用本地开发环境时执行时间会有所不同吗?