4

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

单击以查看 xhprof 的完整图形输出

点击查看 xhprof 的表单输出

我使用的版本是:

php:5.3.8

nginx:1.0.10

xhprof:从它的 github 源构建

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

4

1 回答 1

1

从 php-fpm.org 页面:

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

我自己还没用过fastcgi_finish_request(),但是如果时间,服务器需要发回到目前为止做出的响应输出,在PHP脚本中算作这个方法的“执行时间”;看起来很清楚,为什么这个功能“消耗”这么多时间,因为它取决于您的服务器和客户端网络连接(例如 ping)。

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

于 2013-01-28T15:01:04.107 回答