[转贴]CGI, mod_perl, PHP, JSP性能比较Web服务器教程
|
| 论文作者:佚名 论文来源:不详 论文发布时间:2006-6-18 22:58:40 论文发布人:chjchjchj |
减小字体
增大字体
摘要:[转贴]CGI, mod_perl, PHP, JSP性能比较 作者: 一网深情
** 请注意! ** 测试结果很大程度上依赖于机器的硬件/软件配置,并随配置变化而产生差异,因此: 本测试结果 *仅供参考*
测试用硬件: 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
shenvo 回复于:2003-01-15 13:41:46跑jsp这么耗内存吗,这和运行什么样的服务器也有关系吧,请问斑竹tomcat,resin哪个性能更好些(同等条件下)
南非蜘蛛 回复于:2003-01-15 13:44:32[quote:afe8c42037="shenvo"]跑jsp这么耗内存吗,这和运行什么样的服务器也有关系吧,请问斑竹tomcat,resin哪个性能更好些(同等条件下)[/quote:afe8c42037] 我觉得不要钱的好,纯属个人意见,不代表版本意见,呵呵
neteagle 回复于:2003-01-16 13:48:29我的tomcat比较夸张,环境为redhat AS 2.1+apache1.3.27+tomcat 4.1.18,jdk为IBMJDK1.3.1,数据库为oracle9I,开始时每个java占用内存为25M,随着访问的增加开始上升到100多M,多时达到300多M,没有访问后java占用的内存并不释放,只有重起tomcat才能释放内存,我一直找不到原因,蜘蛛你知道吗?
南非蜘蛛 回复于:2003-01-16 13:55:17[quote:a9d1723b7c="neteagle"]我的tomcat比较夸张,环境为redhat AS 2.1+apache1.3.27+tomcat 4.1.18,jdk为IBMJDK1.3.1,数据库为oracle9I,开始时每个java占用内存为25M,随着访问的增加开始上升到100多M,多时达到..........[/quote:a9d1723b7c] 是你的程序没有释放内存吧???
neteagle 回复于:2003-01-16 14:09:15对,tomcat没有释放内存,一个java仍然占用300多M内存, 只有重起tomcat才能释放
南非蜘蛛 回复于:2003-01-16 14:11:10[quote:de9500e94e="neteagle"]对,tomcat没有释放内存,一个java仍然占用300多M内存, 只有重起tomcat才能释放[/quote:de9500e94e] 我查查资料,我觉得是你程序写的有问题,不是tomcat的问题
neteagle 回复于:2003-01-16 14:16:36我先用我自己的应用出现问题, 后来用了你上面贴里的那个helloword.jsp 用ab测试
ygzq 回复于:2003-04-03 10:52:05[quote:07cc0e3071="南非蜘蛛"]除了JSP之外,其它几种CGI/脚本的表现大致是正常的。Perl程序解释执行,作为 CGI运行时又需要另外fork进程,所以最慢;mod_perl和PHP都直接在httpd内部运 行脚本,省掉了fork的消耗,所以快了很多;C程序虽然本应最快,但作为CGI 运 行时也是因为fork而使性能大打折扣。[/quote:07cc0e3071]
simple c cgi should be much more quicker than listed.
forking a perl takes about 4 MB memory while forking a simple c program can be ignored (yes still some overhead).
agree that c cgi should simple.
price for php and mod_perl is that you end up with a much larger httpd file which needs more resources to run - no free lunch as it says. so the system can be really slow when/before it establishes its httpd process pools, and when there are a lot of users so new httpd processes need to be created.
麻辣 回复于:2003-10-20 01:47:45无意中发现这个帖子,我也测试了一下,和上面的结果完全不同
理论归理论,还是多实测,不同的代码不同的环境可能有不同的测试结果。
我的测试结果完全相反(在windows环境)perl普通状态(没有mod_perl)下不但不慢,还比PHP要快
测试完成相同加法运算,循环1000000次(如果您的机器配置比较底,可以减少循环次数)
雷鸟2000+ 256兆内存,考虑到加上编译时间,做了两个脚本: ######perl.cgi######### #!/usr/bin/perl use Benchmark; $TT0 = new Benchmark; do "test.cgi";#用DO命令调用test.cgi脚本来计算总时间 exit;
#######te
|
|
|
|
|
|
|
| ∷相关技术评论 |
(评论内容只代表网友观点,与本站立场无关!) [查看发表评论...] | |
|
|
| |
站内广告 |
| |
|
站内搜索 |
| |
栏目导航 |
| |
|
|
本月热门 |
| |
|
|
本日热门 |
| |
|
|
|