4

我开发了以下 CGI 脚本并在 Apache 2 ( http://localhost/test.chtml ) 上运行。我在 PHP ( http://localhost/verifica.php ) 中做了同样的脚本。后来我使用 Apache Benchmark 工具执行了 Apache 基准测试。结果显示在图像中。

包括

#include <stdlib.h>
int main(void)
{

    printf("%s%c%c\n",
    "Content-Type:text/html;charset=iso-8859-1",13,10);
    printf("<TITLE>Multiplication results</TITLE>\n");
    printf("<H3>Multiplication results</H3>\n");

    return 0;
}

在此处输入图像描述

有人可以解释一下为什么 PHP 服务的请求比 CGI 脚本多吗?

4

2 回答 2

5

对独立 CGI 程序的调用会导致fork/ exec- 必须完全加载新程序。这不是很有效。

最初 PHP 以这种方式运行,但为了加快速度,mod_php开发了 PHP 解释器最终内置并在 Apache 服务器的进程空间内运行,它所要做的只是一些简单的解析。

于 2012-06-10T22:36:14.147 回答
2

您在这里真正衡量的唯一事情是几乎没有操作的程序造成的开销。调用脚本或 cgi 所产生的开销取决于 Apache 服务器的配置方式。您可能将 php 用作模块,这意味着它实际上在 apache 进程中运行。对于 CGI,您可能使用的是常规风格,即为每个调用创建一个进程。

根据您实际想要测试/了解/评估的内容,您可能应该多次重新运行此测试,例如在 php 与 C cgi 中进行大量计算,使用 fastcgi 等等。另外,不要忘记检查像 APC 这样的代码缓存对 php 代码执行的影响,在某些情况下,差异是巨大的。

于 2012-06-10T22:40:53.807 回答