1

我在 hello.php 示例中添加了 header 函数,如下所示:

<?php
   header("xxxxx: yyyyy");
   fwrite(STDOUT, "see headers.<br><br>Hello, PHP!<br>current working directory: ".getcwd());
   exit(200); // return an HTTP code (200:'OK')
?>

但在萤火虫中没有找到这样的标题。
谁能解释如何使用 gwan 在 php cli 中添加其他标头?

4

2 回答 2

2

感谢 Gil 和 Richard,
现在,这是我根据您的建议所做的。PHP 在 gwan 中使用自定义标头工作。

<?php
 $output='See headers....Hello, PHP!<br>from gwan';
   $len=strlen($output);
   fwrite(STDOUT, "HTTP/1.0\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: close\r\nContent-Length: $len\r\nxxxxx: yyyyy\r\n\r\n$output");
    exit(1);
?>

我使用ab -c 1000 -n 100000 http:127.0.0.1/?hello.php
内存使用量增加了2.9GiB = 0.0203GiB
的 0.7% CPU 使用量从20% 增加到 75% = 50%(ab 在与 gwan 的同一台机器上运行)
我在我的旧机器上做了它 intel P9300 2.26 GHz x 2,ubuntu 12.04

它在 9.543 秒内完成,没有失败
,大约10,479 req/sec

于 2013-01-24T08:29:18.287 回答
0

汤姆是对的。要绕过 G-WAN 注入的 HTTP 标头(因为 you returned 200),您应该返回 1-99 范围内的值(无效的 HTTP 状态代码)。

然后,将使用您自己的 HTTP 标头(如果有)。

return 0;表示关闭连接,并return 200-600;保留用于告诉 G-WAN 生成相应 HTTP 标头的 HTTP 返回代码。

PDF 手册是值得一读的资源。


只需一句话"fastCGI":它永远不会比从多个线程并行运行脚本更快......而无需涉及网络(在服务器和 PHP 之间)。

您添加的中间层或接口越多,速度就越慢,因为"fastCGI"使用网络通过接口运行脚本必然比直接运行代码(而且我什至没有解决 PHP“fastCGI”服务器非常慢,fastCGI 协议本身就是无意义的复杂,因此很慢,而且,最重要的是,fasctCGI 实现不仅仅是次优的)。

现在我们有了多核 CPU,并行性不一定涉及水平可扩展性(通过在许多连接的机器上运行代码获得的可扩展性)。

垂直扩展(在本地机器上的许多 CPU 内核上)更便宜(更快、更节能)。

随着 CPU 内核的数量呈指数增长,没有退路:随着时间的推移,垂直扩展将变得越来越有意义。

于 2013-01-22T17:38:04.740 回答