15

我正在使用 Perl 开发一个 Web 应用程序,其中包含一些 C 语言,这是一些繁重的数字运算所必需的。到目前为止,我遇到的主要问题是试图决定是否应该使用 mod-perl、mod-fastcgi 或同时使用两者来运行我的脚本,因为我很难分析每个 mod 的优缺点。

任何人都可以发布摘要或提供链接,我可以在其中找到一些比较信息,也许还有一些带有示例的建议?

4

3 回答 3

23

他们是完全不同的野兽。

mod_fastcgi(顺便说一下,推荐使用mod_fcgid)只支持 FCGI 协议以更快地执行 CGI,并通过一些旋钮控制它将同时运行的进程数,而不是更多。

另一方面,mod_perl 是一个用于开发应用程序的平台,它向您展示了大多数 Apache 内部结构,因此您可以从代码中调整每个 Web 服务器旋钮,加速 CGI等等

如果您只想快速运行 CGI,并希望支持尽可能多的主机,那么您应该坚持支持这两种运行代码的方式,并且可能还支持标准 CGI。

如果您关心以灵活性为代价的最大效率,您可以瞄准单一平台,可能是 mod_perl。

但可能最明智的选择是在任何地方运行并使用框架来构建应用程序,该应用程序将利用特定执行方式的优势(如果存在),如Catalyst

于 2008-12-20T02:51:36.823 回答
7

我建议您使用像Catalyst这样的框架来处理这些细节。对于大多数应用程序,程序如何连接到网络服务器并不重要,只要它以一种有效的方式完成即可。mod_perl 和 FastCGI 之间的选择应该由部署它的系统管理员做出,而不是开发人员。

于 2008-12-20T02:39:12.793 回答
5

这是一个站点,其中包含 mod_perl、mod_fastcgi、cgi (Perl) 和 Java servlet 的一些实际性能比较 - 对于一个非常基本的脚本:https ://sites.google.com/site/arjunwebworld/Home/programming/apache-jmeter

总之:

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

于 2013-05-20T01:28:00.013 回答