在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
** 请注意! ** 测试结果很大程度上依赖于机器的硬件/软件配置,并随配置变化而产生差异,因此: 本测试结果 *仅供参考* 测试用硬件: CPU: Intel PII 300(66x4.5) RAM: 192M HD: IBM 20G(2M cache) 测试用软件: OS: Slackware 7(自行编译的2.2.14核心) Web: Apache 1.3.12(标准模块按缺省配置,所有模块静态编译) PHP 4.0 RC1(加入了MySQL支持) mod_perl 1.23(缺省配置,未加EVERYTHING=1) ApacheJServ 1.1(缺省配置) JDK: JDK 1.2.2 JSDK: JSDK 2 JSP: GNUJSP 1.0.0 JSP: GNUJSP 1.0.0 本测试是用Apache自带的Apache Bench(ab)进行的,命令为: /www/bin/ab -c 20 -n 1000 CGI/脚本URL 此命令表示使用 20 个并发连接,进行 1000 次请求。 所有测试均在本机进行,各种测试均反复进行5次,去掉最大最小值后取平均值。 我分别测试了C写的CGI、Perl写的CGI、用mod_perl执行的Perl CGI、PHP和JSP。 各种CGI/脚本均输出内容相似的简单页面,内容如下: html body h1The xxxx Hello Program/h1 p Hello xxxx World! /body /html 测试结果(只取了最具代表性的 Requests per second 即每秒处理请求数这一项) CGI/脚本类型 每秒处理请求数 C CGI 128 Perl CGI 69 mod_perl 223 PHP 237 JSP 21 除了JSP之外,其它几种CGI/脚本的表现大致是正常的。Perl程序解释执行,作为 CGI运行时又需要另外fork进程,所以最慢;mod_perl和PHP都直接在httpd内部运 行脚本,省掉了fork的消耗,所以快了很多;C程序虽然本应最快,但作为CGI 运 行时也是因为fork而使性能大打折扣。 至于JSP...我想这个结果并不具有代表性。毕竟测试用机只有192M内存,用top看 看,一个JAVA就占了11M。况且测试用机本身是一台Web server,测试时还有好几 十个httpd在跑 不过不管怎么说,在配置较低的服务器上,跑PHP、mod_perl在性能上要好过JSP 是肯定的。 附测试用程序: C程序 hello.c #include stdio.h int main(void) { char s[] = "C CGI"; printf ("Content-Type: text/html "); printf ("html " "body " "h1The C CGI Hello Program/h1 " "p " "Hello %s World! " "/body " "/html ", s); return 0; } 用 gcc -o hello hello.c 编译,把 hello 放到 cgi-bin目录下。 Perl程序 hello.pl #!/usr/bin/perl #!/usr/bin/perl $s = "Perl CGI"; print "Content-Type: text/html "; print <<DONE html body h1The Perl CGI Hello Program/h1 p Hello $s World! /body /html DONE 把hello.pl放到cgi-bin目录下,兼作Perl CGI和mod_perl 脚本测试用。 PHP文件 hello.php html body h1The PHP Hello Program/h1 <? $s = "PHP"; ?>; p Hello <? echo $s ?>; World! /body /body /html JSP文件 hello.jsp html body h1The JSP Hello Program/h1 p <% String s = "JSP"; %>; p Hello <%= s %>; World! /body /html |
请发表评论