我正在使用Perl开发一个Web应用程序,需要进行一些大量的数字计算,因此需要使用一些C语言。到目前为止,我遇到的主要问题是无法确定是否应该使用mod-perl、mod-fastcgi或两者结合来运行我的脚本,因为我很难分析每个模块的优缺点。
有没有人可以提供一个摘要或给出一个链接,让我可以找到一些比较信息,并可能提供一些带有示例的建议?
我正在使用Perl开发一个Web应用程序,需要进行一些大量的数字计算,因此需要使用一些C语言。到目前为止,我遇到的主要问题是无法确定是否应该使用mod-perl、mod-fastcgi或两者结合来运行我的脚本,因为我很难分析每个模块的优缺点。
有没有人可以提供一个摘要或给出一个链接,让我可以找到一些比较信息,并可能提供一些带有示例的建议?
它们是完全不同的东西。
mod_fastcgi(顺便提一下,建议使用mod_fcgid)仅支持FCGI协议,以便更快地执行CGI,并具有一些旋钮来控制同时运行多少进程等功能,而没有更多的功能。
另一方面,mod_perl是一个应用程序开发平台,将大部分Apache内部暴露给您,因此您可以从代码中调整每个Web服务器旋钮,加速CGI等更多功能。
如果您只想快速运行CGI,并希望支持尽可能多的主机,则应坚持支持这两种运行代码的方式,可能还包括标准CGI。
如果您关心最大效率而不考虑灵活性,则可以选择单一平台,可能是mod_perl。
但是,最明智的选择可能是在任何地方运行并使用框架构建应用程序,该框架将负责利用特定的执行方式的优势(如Catalyst)。
我建议您使用像Catalyst这样的框架来处理这些细节。对于大多数应用程序而言,程序连接到Web服务器的方式并不重要,只要以高效的方式完成即可。选择mod_perl和FastCGI之间应由部署它的系统管理员做出,而不是开发人员。
cgi - 1200+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::PerlRun only)
fast_cgi - 6000+ requests per minute
mod_perl - 6000+ requests per minute (ModPerl::Registry)
servlets - 2438 requests per minute.
在 PerlMonks 上有一篇旧帖子,比较了 mod_perl 和 fastcgi: http://www.perlmonks.org/?node_id=108008