7个方面阐明PHP比ASP优秀
ASP是微软公司实现动态网页的一种技术。ASP支持一些脚本语言,主要以VBScripp为主。与ASP相比较,你还可以选择另一中开放源代码编程语言——PHP,PHP可以运行在多种操作系统下,其中包括Linux和windows。- Z7 W2 E) t5 m( i9 b7 \
* o" m+ h- `9 k$ t: `% T: N" e* a
虽然ASP是一种不错的技术,但从长远考虑我相信PHP在将来的技术领域里会有不凡的表现。6 |) S y7 a; a$ R& x
4 p% l1 c* E3 _; N0 \ 下面从7个方面阐明PHP比ASP优秀:/ T% p8 b/ i9 m0 ^, I; i
N8 A: o" e n 1、速度、速度、速度
3 S5 {6 V- K$ b# M) X" F) d+ n. S6 s9 S% G2 c! q) J/ ^- x, e/ d
当我第一次运行PHP脚本程序时,我不禁对自己说:“太快了”,当时我是在仪态166MHZ的机器上运行我的程序的,但运行的速度仍然很快。
; C0 x8 M4 I: h8 L5 {: a
' z! L- d; }) ?8 G/ o3 v: y ASP是永远也不会象PHP这样快的,因为ASP是建立在COM体系结构之上的。当用VBScript写ASP脚本时,实际上实在使用COM的对象,当向用户浏览器发送信息时,它用的是Response对象的write方法,当它访问数据库和文件系统的时候,它用的是其他的COM对象。这些COM对象的使用使运行速度下降。! L1 j# b6 s0 S8 C
2 R/ S2 O! B/ ~+ b+ @6 A: B/ K5 y
在PHP代码中,所有的工作都运行在PHP的内存空间中,也就是说PHP不是基于COM对象的,所以的他的运行速度会快一些。! q" @( i v! B$ C6 n7 O
3 o j2 P/ u4 w( I+ b 下面是我们在MSSQL7 40次运行一个查询语句的执行时间统计:
& }# P/ |# O) Z: q, i6 S
- f7 ~( C+ U# `; k PHP Querying MSSQL7 时间(秒)0 H- ~& S3 l* D+ y6 c
6 {, d3 k# F5 v; G3 [ 用 MSSQL extension 01.889 ^7 z. k+ p0 D N* P) J
! w6 ~" i7 H1 [
用 ODBC extension 09.54
# N9 R2 ^; J+ ?- g& r' M0 Q- w& Q2 R- i/ ~
用 ODBC via COM (ADO) 17.28
- ~/ k/ o3 O7 q6 B; w
8 |1 q! [, {5 Y% Z$ b 用OLEDB via COM 06.19
$ Z9 I& c- O3 \) }8 |# {5 _. N+ Z$ n) m
当我们使用PHP.ODBC,访问数据库用了9.54秒,而用COM接口去连接数据库需要比PHP所用的时间高80%。$ z$ J) c: b4 S
6 Y& [8 J( w% p0 W2 C+ [. I OLEDB是微软的一种高速访问数据库的技术,他比ODBC要快。但当我们所PHP和OLEDB的效率实验时,结果是PHP的整体性能比OLEDB高200%,如此的出一个结论,如果不采用COM可以获得较快的执行速度。
# ~3 _; a; |9 l3 M& B" z' Q: e2 E9 h* c' L
当然PHP的执行速度还不是最快的,但我们才刚刚开始起步,我们会逐步的完善他,而且PHP是一种开放源代码编程语言,世界上许多程序员在不断的完善他的技术,相信他一定会比非开放源代码系统获得更高的执行速度的。
! g9 y( s3 W" C( t3 B
' P& M0 S. a- R9 c) S 2、高级内存管理
. g( L2 _- ]: U2 ~$ n( w7 s2 H' n+ H* |& z
在IIS4下,一个ASP脚本header.asp,如果被20个页面所包含,那么运行的时候,在内存当中会保留这20个header.asp的编译副本,IIS5解决了这个问题,但只有windows2000才支持IIS5,由于这种IIS5的不能向下兼容的原因,许多服务器仍然要使用IIS4下的低级的内存管理。
$ s S5 q0 F; ^( p0 R X! o) B4 |7 G/ m. L
而在PHP中,不会存在这种问题,只有当require时,才会调用某个include文件。
: e. v5 z' n5 Z8 F/ D0 k
( I, ]% v7 l+ G9 e/ Y3 ] 3、没有后顾之忧
+ P2 Y7 ]3 A6 G% [
, d, j _0 U i d& m 我非常憎恨的一件事情就是会买到一件不放心的产品,比如当你买了一辆汽车,但由于发动机是坏的,你需要更换他;当你买了一栋房子的时候,你要去修补漏雨的屋顶。8 Q8 R/ R- [; p% y
8 S: C, |( T5 ]' [6 M 那么ASP旧乡这些产品一样,当你买了ASP之后,如果你需要加密技术,你就要买ASPEncrypt;当你需要Email管理时,你就要买ServerObjets Qmail;当你需要文件上传时,你还要买Artisans SA-FileUp.
# w( Y. S6 t- ]# G: D5 D# ^
# a, v$ {. j y/ \ 4、MySQL使PHP更精彩
o1 s* X0 g/ [3 u
: ^% S+ p* S% c$ ]4 r }# @ PHP与MySQL的组合既简单又精彩。PHP有许多管理和维护MySQL的工具,对MySQk的支持是最全面的。许多有用的函数如mysql_insert_id和mysql_affected_rows等,其他的数据库则没有。. f( B7 M( l( ]" }( X8 W
1 Q5 w P% A2 B# o9 `
ASP和PHP都是中型网站的较理想的解决方案,但PHP与MySQL的紧密结合使PHP更加优越。
" n6 f) I) |' ~ r1 c, q4 N) M- [$ U8 R% X( w+ _5 ~
MySQL的虚度比Microsoft Access速度快,Mssql和Oracle速度比MySQL要快,可是费用较高。
1 o! O' v( s7 x; Z+ M0 V4 F
# a' U0 x% l! ?/ t7 t 5、Java和C++的变成风格; s0 u1 b+ M2 n' k# n- j
% S% c1 e! r+ \4 k" [4 ~
这个优点只是一个看法。
: L/ N' k0 P- f" K& s i. _
; N+ y( B* B3 [, p" J 我知道你不会相信一个Visual Basic程序员会因为PHP有Java和C++的编程风格而转向使用PHP,但你会相信有许多人还是喜欢Java和C++的,PHP是一种具有这两种语言的编程风格的较容易学习的语言。
9 @/ L* e- f% O* w8 U9 L- `' h" p) X9 h. Y3 l: J: ?9 U
PHP支持结构化编程,在VB因为他的继承性使用类还是较少的。而PHP的象Java和C++一样的继承性使一个大型的程序中到处都充满了类的影子。+ l- i3 z6 Y5 e7 g" L
8 h- e a% S7 {; M" D K3 I
6、Bug的处理& ]9 y' F, D8 t! i6 x
: ?: w+ ?7 g1 g% G' f- L
你是否曾经要求Microsoft修改ASP的一些Bug呢?如果你不是一个象Boeing一样的组织,你无法获得迅速而恰当的修改,把么当你遇到Bug而停止工作时,如果这个Bug不修改,你将无法继续你的工作的。( { L6 D& s0 Z; B$ z; h* r
2 T4 i/ l* a/ ~. H PHP,当你发现Bug时,你可以修改他,如果你没有专家的水平,你可以请专家修改,并且你的修改会得到开放代码组织的接受和认可。9 G& R! N/ s8 f; Q I) D: e
1 s. C5 {$ ]: z0 P) i' X- x/ E 7、移植性$ g8 Q& z7 ]7 N* W+ s8 _* K
2 l5 T& t9 P" j0 ]8 q
Microsoft经常修改ASP,下一版本叫ASP+,现在已经开始测试。我相信他们会修改许多我曾经提到过的问题。但也无庸质疑的,Microsoft会将你限制在他们的产品范围之内的。
) k i- Y7 C& V+ Q: n2 M
- C! Z8 j* C) L: V( Z6 \7 q 我曾经是一个苹果机的程序员,当windows95问世后,我开始转变,但许多原来的代码都无法在windows95下运行,这些代码现在被放在一边,我非常的遗憾。所以我不希望在windows下再出现这样的悲剧。
3 `6 \. Z" ~% f9 f0 i" b) O' y- ^" w% j( G5 s/ t
不要忘记Novell曾经也象Microsoft的网络操作系统一样热及一时,但现在已经没有许多人用了,那么Microsoft也会这样的。
1 b, y# K5 j; @3 m
" f3 k- i' p ]" P1 t 我找到了PHP,我仍旧在windows下工作,但我知道PHP代码可以运行在Solaris、Linux和许多其他的操作系统中,我的心里感到安慰