FCGI和PSGI之间的Perl基准

问题描述 投票:2回答:1

我对FCGI协议的了解是,第一次调用应用程序的时候,它把应用程序加载到内存中,运行,把响应返回给服务器,完成响应,但并没有结束应用程序,它一直在内存中运行,那么下次请求就会使用这个在内存中编译的应用程序副本来处理请求。

看了一下PSGI协议,似乎也是这样的工作方式。

我的问题是,我的假设是否正确,它们在每秒的请求速度上的应用速度是一样的。

令人困惑的问题是,如果它们的工作方式是一样的,为什么我看到plackup有命令行选项来启用FCGI。

perl fastcgi psgi
1个回答
10
投票

你问的是苹果和水果的比较。你的问题没有太大意义。

你可以使用各种底层机制来部署一个用Perl编写的Web应用程序。

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

问题是,对于每个部署机制,你都需要改变你的程序的编写方式。这意味着你需要在开始写代码之前知道你的目标是mod_perl。这也意味着,在这些不同的部署方式之间移动一个应用程序是非同小可的。

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

如果你使用FCGI处理程序来部署你的PSGI应用,那么它的工作方式将和FCGI应用一样。但是以后要把它移到mod_perl应用中运行就很简单了。或者用Starman之类的东西把它作为一个独立的服务器来运行。

这对你有什么帮助吗?

© www.soinside.com 2019 - 2024. All rights reserved.