今天测试linux/Apache环境下各设计语言的速度。测试是个人的,且没有进行大负荷
测试,只在一个用户的条件下,测试领域很不全面,只有简单循环、乘法和数据库读取。
因此这个结果只能说明在轻负荷情况下,一般数学运算和数 据库简单读取的性能。 测试
条件: Hardware: Dell Dimension XPS,Pentium II 450, 256M RAM,
Adaptec AHA-2940 Ultra2 SCSI Card, QUANTUM VIKING II 9.1G硬盘
(另挂IBM-DTTA-351680 17G IDE硬盘,但未在测试中起作用) Software: Redhat 6.0,
Kernel 2.2.11, Apache 1.3.6 Blackdown JDK1.1.7v3/JServ 1.0, PERL5.005_03,
PHP4 Beta2( 用pgcc-2.91.66/egcs-1.1.2编译)
数据库:Oracle 8.1.5 客户机:Pentium III 450 with 256M Ram, NT 4.0 Server SP5,
有意用IE来测试。IE为5.0
测试一: 50*1000*1000循环
1. PERL CGI 耗时44秒
2. PHP4 Beta2 耗时107秒
3. Java Servlet 耗时7秒
测试二: 从Oracle中读取100,000个简单记录
1. PERL CGI 40秒
2. PHP4 Beta2 34秒
3. Java Servlet 36秒
结果分析: 1. PHP4 是嵌入式程序设计语言, 虽然在Apache里以Module方式常驻其解释
器,但实时解释,尤其是复杂运算解释,速度相当慢。简单运算,数据库存取,速度还可以。
2. PERL CGI速度适中。其CGI也是在客户请求后,放才解释,因此较为耗时,但由于PERL
解释器开发时间很长,优化叫好,即使是以CGI方式调用,也还不错。如果采用Mod-PERL,
相信会好很多。
3. 一般认为JAVA很慢,但发现在以JServ模块方式运行Servlet时,速度相当快。仔细分
析,一来Servlet已经是预编译后的*.class,而来常驻内存的JDK/JDBC能提高速度。个人
以为,Java之慢,大概慢在其AWT以及其它复杂类运算上,简单循环之类的运算、JDBC调用,都还可以。
同意你的看法:我用java severlet 做过测试希望能够是个补充。
测试机器配制: P166, 64M RAM , linux RedHat5.1 with kernel 2.2.3,
apache web server 1.3.4 with apache Jserv1.0
数据库所在机器配制: Sun E250, 512M RAM, OS5.6, Oracle 7.3.3
测试方法: 在局域网内用Windows程序访问测试机Web服务的Java Servlet 程序,此程序通
过Oracle通信访问数据库所在机器进行数据察询, 程序返回后计数器加一.
测试时间: 一小时整
测试程序进程数量: 5
测试结果: 五个进程访问次数为: 5769,5825,5767,5780,5721 共计:28862 次
备注: 1.没有对测试机进行任何调试
2.Java Servlet 采用 JDBC访问数据库,使用了Connection Pool
3.此次测试不是满负荷测试 top 查看Cpu 有20%-0.4% idel RAM use 约为30-40M
Swp used=0 M. System RAM use=5-6% user RAM used 约为80%
4.测试中没有启 Xwindow.
5.测试中测试机对 telnet 等访问响应迅速.