我爱电脑技术论坛's Archiver

白雪公主 发表于 2008-6-18 11:46

升级PHP5的理由:PHP4和PHP5性能大对比

PHP 4到今年年底PHP Group将不再对其进行支持了,所以为了让大家更有信心的转移到PHP 5平台上,我特别做了这个测试,看看我们PHP 4.x 是否真的性能比我们的PHP 5.x要好捏,测试结果很明显,那就是PHP 5.x 比php 4.x不论是面向对象还是面向过程,都要比PHP 4.x 要快,所以大家完全有必要转移到PHP 5.x 平台上,去体验PHP 5.x 平台的各种功能和性能。
E?{*gVP~$i#P+a
-]/o)Q:q;{
N KN1q*j3e 因为PHP 5 包括新的对象模型,更多新特点,更快的处理速度,特别是处理面向对象代码的速度,虽然在php 4中面向对象代码的速度比较一般,但是在PHP5.x中面向对象代码的速度都超过了面向过程的速度,所以不要对面向对象的性能持有怀疑,下面的测试结果将说明这一切。 P A v+L-Z1R4]t'Ym!n
iv1`.[k l(Y

~?X0BC;d\ 【测试环境】
pSA3@*FZ
+NK2X5q1kzjd&J
)gmlx4ME.u ox * CPU: Intel Pentium4 2.66GHz
B0k} R,Xs9{ `H7N-ys*hY
* Memory: 1GB 3q9IQ4Vi!q^O

!u4X'gtek1l u * Disk: 73GB/SCSI
7Y2r.D6~$y
)i j B1F-n C)H;kP3e+q m * OS: FreeBSD 4.11 |z _#i2P'e/G
%F(NI a{0~kqP
* Web: Apache 1.3.37
d UFf$W x m7Rl$?#H
测试工具:ab (也可以选用http_load) .MUR OOV'K.d

D9wm \0yD9BL&jE 名词RPS: Requests per second (每秒的请求数量) 9J#u0l4UhbuK

.Xv$Y] p3g|wu rE
,Dt!A4nQ{7E 【PHP 4.4.2 测试结果】
R|O ]-mi6s pQ&A'GHWCD

}T5fB7Cm+A&N'q [ 函数 Function ]
e1F.@!GUZf M5Ob+YG
Q+K @J&O`rdG6T8P.{"[X
测试结果:ab -n 10000 -c 50 的结果是1047.23/rps
~N6D(w4J "B7J?~|} IW;g&G
Sa{jH8dq$}
[ 类 Class ]
G-HpLb;x
(Q ~z8\v2q/u
__:A)y AU'ez2i1q 不实例化类 ,N1?%CQ9T m4i'}n
H$M;tO Fk
D5k\vQ
测试结果:ab -n 10000 -c 50 的结果是 1034.98/rps 1BwB4`f~
I}gLmizsFmr

q6h$kI_l3M 实例化类 @ GbtX
?IUY9q4U

\?D.c_ ? 测试结果:ab -n 10000 -c 50 的结果是 1006.14/rps (S4h_Y5bR
F5AF1J9S
lCw c.M(S
类的继承 _d}F)F2@

It!Qq$BB %V1H0](R(qI#J/f$AQe
测试结果:ab -n 10000 -c 50 的结果是 992.95/rps ZOj2S[;o sB
^B'b/N.GM3B4Qvor

+ttxb&?3y 【PHP 5.2.1测试结果】 ,jH0o|{0AJ
d&m d;iClu;A

4O1J9Ro3Ugj [ 函数 Function ] 9r Zb,HY2g;M

`E#h a |r_P
.|P-S@8R.k@ 测试结果:ab -n 10000 -c 50 的结果是 1176.06/rps 0b oSGT0b

ak*d t'Dd.yZ
:T4B/^,i7F/T [ 类 Class ]
$P_6{&T^A|xP 0I.t.bPV\-U
%Ipm V#[N Aj s
不实例化类 zb{OmO4UV${

^+b9p-r c QZTU7ipNJ
测试结果:ab -n 10000 -c 50 的结果是 1197.17/rps p,d ?5x @|3o
+O2['W'^B;\/Gi%t

g:l;L%A m3^ 实例化类 ~AD!\-|`p_
oXm8EP8?oe
Xac$[,K i
测试结果:ab -n 10000 -c 50 的结果是 1187.93/rps
OW/S#Bh0Akp 7? c?,F'A|0[;u

L5p#WG I _3s7K.y 类的继承和抽象

白雪公主 发表于 2008-6-18 11:46

测试结果:ab -n 10000 -c 50 的结果是 1128.54/rps 3E3@`'X)x!A"L-MA
8XG6lvEc

v#VK0m'_ jx 【测试结果和分析】
&u7^O e%M@^ r
TqZ\'|P(M4c k }:v
qd!?`#C D?J/Ml [ 测试结果数据 ] +a Db4oi3BQI)[

K/O~)s)u!_8I6n i
z$L6y(L;n 版本 函数测试 不实例化类 实例化类 类的继ā承 (b iw _e

&^ |*rOOm PHP 4.4.2 1047.23/rps 1034.98/rps 1006.14/rps 992.95/rps $sg AK,Zd7nLVO
[JI+^x~q+F
PHP 5.2.1 1176.06/rps 1197.17/rps 1187.93/rps 1128.54/rps
P9gA?G nN,~ EL"p
F _7cv0T'u/A aJ
[ 结果分析 ] ,iV~kA
"Ss%P)\4R,^3L4s8aW%q(x

,n~U-Xl 1. 总体来说,可以明显刚看到PHP5.2 的性能要比 PHP4.4略高一点,所以不要怀疑PHP5.2的性能会差,明显比 PHP4要快
zT+NH*uqm N@ 0M~KH@X.V

"v1sl_?,M&j]"l U 2. PHP4.4中的类的解析性能明显要比函数的要慢,特别是当使用了继承以后,更是下降的厉害,所以在PHP4.4中更适宜使用面向过程和没有继承的类操作 'L#R]$g0Fc@1Ae
-@ y.V3Uo

+El\o0p;wB,M;B 3. PHP5.2中结果是类的执行速度比函数还要快,可以看出PHP5.2的引擎对面向对象处理花费了很大的功夫,同时他们不论是函数还是类,性能都不错 2gt4h0fH]f%bW

p8D MqV `y2RM3q Q%I#mJY"Y8o4vj
4. 通过这个测试,我们完全有理由在代码变更不大的情况下,把PHP4升级到PHP5,而且PHP5基本向下兼容PHP4的代码,除了一些特殊的代码。另外上面提到今年年底之后PHP Group将不再继续对PHP4进行维护了,所以早升级,早安心。

页: [1]
   

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.