FCGI和PSGI之间的Perl基准

时间:2014-07-27 14:41:39

标签: perl fastcgi psgi

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

阅读有关PSGI协议的内容,它的工作方式似乎相同。

我的问题是,我的假设是正确的,它们在应用程序速度方面是相同的 每秒请求。

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

1 个答案:

答案 0 :(得分: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的东西将其作为独立服务器运行。

这有帮助吗?