FCGI优势:
1 不用对于每个请求都fork一次,别小看这个fork,对于
访问量非常大的某个逻辑,你用CGI,会造成系统fork大量的进程。进程过多了有会造成切换,开销不小。
2 FCGI初始化操作不用对每个请求都进行。 有时候你的业务逻辑需要连接某个服务器,查询数据,如果查询非常频繁,用FCGI的话可以建立个长连接。用CGI的话,每次建立一个连接,无论是服务器端主动关闭连接还是CGI关闭连接,都会造成一定数量的TIME_WAIT连接。
FCGI劣势:
1 如果你的程序实现某个地方有问题,比如
内存小泄露,久而久之所占的内存会很大,CGI不会有这个问题。为了避免诸如此类的问题,很多人喜欢在FCGI处理一定数量的请求后自动exit。
2 FCGI常驻内存,多少占点内存空间。
总之,看需要选择,如果访问量大到一定程序,CGI是支持不住的时候或者业务逻辑要求常驻内存的服务,用FCGI,否则,能够用CGI就用CGI吧。