
 
 | 
| 技术资料  > PHP技术 > 经典文章 : 基于什么样的理由 PHP 比其它 CGI 好呢? |  
基于什么样的理由 PHP 比其它 CGI 好呢? March 23,2004 |  
Q:基于什么样的理由 PHP 比其它 CGI 好呢?有没有比较具体的数据可以证明 PHP 执行与其它 CGI 执行的效率好 ? 现在我的公司是用 C 来写 CGI 的,如果换成 PHP,会不会比较好呢 ?没有强而有力的依据的话,我就没办法说服上面的人让我转成 PHP 了...  
 
A:  
我认为"好" 要有三点  
第一: 写出来的程式的执行速度快.  
第二: 遇到有大量存取时的执行效能强.  
第三: 程式开发的时间快,易维护。  
php在这三点中,虽都不一定是最好的,但也都在前茅  
以下是C,PHP和Perl在速度方面的比较  
我用下面的算式测试  
$s=1.0;  
for ($i=1;$i<=10;$i++) {  
for ($j=1;$j<=10;$j++) {  
$s=$s*1.0005;  
$s=$s/1.0004;  
};  
};  
print $s;  
?>  
然后用ab -n 10000 -c 20 http://mycgi  
测试,结果  
C语言用了 37.511 秒  
PHP3用了 45.393 秒  
PERL用了 68.418 秒  
看起是C 最快没错,不过,和PHP3的结果没有太大  
的差距。  
Perl最慢  
以下为测试数据  
==============================================  
C 语言  
==============================================  
Document Path: /~evan/test/gcc.cgi  
Document Length: 19 bytes  
Concurrency Level: 20  
Time taken for tests: 37.511 seconds  
Complete requests: 10000  
Failed requests: 0  
Total transferred: 1750000 bytes  
HTML transferred: 190000 bytes  
Requests per second: 266.59  
Transfer rate: 46.65 kb/s received  
Connnection Times (ms)  
min avg max  
Connect: 0 30 3001  
Processing: 4 40 69  
Total: 4 70 3070  
PHP3  
==============================================  
Document Path: /~evan/test/php3.php3  
Document Length: 15 bytes  
Concurrency Level: 20  
Time taken for tests: 45.393 seconds  
Complete requests: 10000  
Failed requests: 0  
Total transferred: 1710000 bytes  
HTML transferred: 150000 bytes  
Requests per second: 220.30  
Transfer rate: 37.67 kb/s received  
Connnection Times (ms)  
min avg max  
Connect: 0 34 3039  
Processing: 6 53 183  
Total: 6 87 3222  
 
PERL  
==============================================  
Document Path: /~evan/test/perl.cgi  
Document Length: 17 bytes  
Concurrency Level: 20  
Time taken for tests: 68.418 seconds  
Complete requests: 10000  
Failed requests: 0  
Total transferred: 1730173 bytes  
HTML transferred: 170017 bytes  
Requests per second: 146.16  
Transfer rate: 25.29 kb/s received  
Connnection Times (ms)  
min avg max  
Connect: 0 22 3005  
Processing: 9 112 323  
Total: 9 134 3328  |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved