FCGI和PSGI之间的Perl基准

dal*_*sam 2 perl fastcgi psgi

我对FCGI协议的了解是,第一次调用应用程序时,它会将其加载到内存中,运行它,将响应返回给服务器,完成响应但不会结束应用程序,它会使其在内存中运行,然后下一个请求将使用此编译的应用程序的内存副本来处理请求.

阅读关于PSGI协议,它似乎以相同的方式工作.

我的问题是,我的假设是正确的,它们对于每秒请求的应用速度是一样的.

令人困惑的问题,如果他们的工作相同,为什么我看到plackup有命令行选项来启用FCGI.

Dav*_*oss 8

你要求比较苹果和水果.你的问题没有多大意义.

您可以使用各种基础机制来部署使用Perl编写的Web应用程序.

  • 它可以是一个独立的CGI程序
  • 它可以在mod_perl下运行
  • 它可以在FcGI下运行
  • 等......

问题是,对于每个部署机制,您需要更改程序的编写方式.这意味着在开始编写代码之前,您需要知道您正在瞄准mod_perl.这也意味着在这些不同的部署方法之间移动应用程序并非易事.

这是PSGI解决的问题.您可以编写一个针对PSGI协议的应用程序,而不是编写CGI应用程序或mod_perl应用程序或FCGI应用程序.您可以在CGI,mod_perl或FcGI(或许多其他部署方法)下部署完全相同的应用程序.

如果您使用FCGI处理程序部署PSGI应用程序,那么它将以与FCGI应用程序相同的方式工作.但后来很简单,将其作为mod_perl应用程序运行.或者使用像Starman这样的东西将其作为独立服务器运行.

这些帮助有用?