5

我很幸运没有进行任何基于 cgi-bin .cgi 的 Web 开发。但一般来说,那些拥有的人似乎并没有“怀念”那些日子。

我最近加入的一个项目在处理需要与具有基于 CGI-BIN 的 API 的遗留系统通信的页面时存在性能问题。该系统是 COGNOS 7。

迄今为止我收到的反馈是“COGNOS 很慢”,但其他人报告说 COGNOS 取得了巨大的成功,我认为这更多地与通过 CGI-BIN 的访问有关,而不是与 COGNOS 本身的性能有关。

所有这一切都说明了导致基于 CGI-BIN 的 Web 开发性能不佳、困难等的主要问题是什么……

4

4 回答 4

4

基于 CGI-BIN 的系统的基本架构问题是每个 HTTP 请求都需要服务器启动一个新进程。这会以多种方式影响性能:

  • 启动进程的成本很高,因为程序中的操作系统页面会设置进程等。
  • 资源不能跨请求共享,因此每个请求都必须设置任何数据库连接等
  • 用户会话状态不能保存在内存中,因此必须与每个请求一起持久化
于 2009-01-08T16:16:32.823 回答
1

对我来说,CGI 最大的痛苦是我的 CGI 程序每次启动时都必须“学习”所有内容。如果他们一直在运行,那当然不会是这样……

于 2009-01-25T15:49:52.247 回答
0

恕我直言,主要缺点与所有较低级别的编码具有相同的缺点-您必须在实现域中进行编程,而不是在问题域中进行编程。最终结果本质上是相同的——基于 HTTP 请求将 HTTP 响应发送到客户端。然而,从编程的角度来看,要做到这一点要困难得多。

于 2009-01-08T16:14:09.537 回答
0

Apache 为各种语言(例如mod_perl)提供了几种解决方案,因此脚本只被调用一次,然后保存在内存中以便快速检索。仍然有很多 GCI 协议驱动的站点,如果编码和设置良好,其中许多都以相当低的延迟运行。

于 2009-09-23T09:10:41.493 回答