asp,php 和 jsp 比较 之我见
现在InterNet 越来越成为生活中不可或缺的一部分,制作网页的动态语言也越来越多,主要流行的有以下几种,ASP,PHP 和 JSP,他们之间互有优缺点,笔者在工作实践中对他们作了一下比较浅显的比较。 0 c3 i) k9 [, \9 p$ L# i
& k9 B+ n, H$ V
3 q! b8 z% P# B3 @ASP 由于其简单功能实用等方面受到广大朋友的喜欢,再加上MS的强有力支持,可以说是时下作站点最为流行的语言,他借助MS的Com 技术,几乎可以实现在C/S 能够实现的所有功能,可以说确实具有相当的竞争力。ASp的代码实现也很简单,MS 提供的InterDev 在RAD 的基础上,使Asp 的开发一夜之间火遍了大江南北。但是他的缺点是,由于MS 长久以来的霸道作风,他只能运行在MS 的平台上,因此在关键性的应用上使人难以轻易接受。 : C0 Y7 Q; ?; s' n7 P1 L: X( g
% ~& S$ g. c' m+ f
PHP 则市秉承Linux 的GNU 风格,借助与源码公开,使他迅速成为世界上目前应用最为广泛的站点制作语言之一。借助与C 的形式,引用类的概念,使得代码的可重复性应用便的异常简单。加上他和Linux,Apache 和MySql 的紧密配合,关键性的应用也没有问题(有名的Sina就是采用Php)。但是他有一个比较大的麻烦,就是没有一个非常有实力的公司专门给他做支持,因此相关的学习资料比较少,目前在国内使用他的站点比较多,但是专门讲解他的站点就比较少。给初学者带来了很多的麻烦。 " ?6 u* X! q" c0 [
4 Q8 N- V( b7 h- aJSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Java 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。 7 g4 a ~& h. Y: ^4 }
& g/ D6 L2 `6 ^" K7 I3 r
我在实际工作中,就这三种语言的性能进行了比较 首先进行的是循环性能测试首先测试的是Jsp测试采用 20000*20000 次循环运算(有没有搞错,这么多),测试结果另人不可思议,该程序只用了不到 4 秒的时间就运行结束了。(没有搞错吧),程序代码如下: 5 q+ R5 ~9 O2 `
( G) p2 e) q+ [9 R9 Q% ijsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar"/ p: k" D o' K& {
jsp:getProperty name="clock" property="time" /
" g/ y8 e0 p+ @* d+ \6 c; v/ a7 i%
5 G3 I8 s: X6 ]4 jint i=0;
# X' e0 X0 v) v& K1 Y; N" fint j=0; % S2 C/ \3 |9 B
int k=0; + L# @ g! h1 E2 p. C3 H
for(i=0;i20000;i ){
+ U" z( I4 r* u7 I, nfor(j=0;j20000;j ){
7 j/ F- b4 L% M) p
! o3 A+ l0 g* O}
s) {. j0 A# E}
% T/ V+ u- P, \7 J%
9 }4 ?* C( A: }5 sjsp:useBean id='clock1' scope='page' class='dates.JspCalendar' type="dates.JspCalendar"/
, G+ M0 M: y0 w6 |; s$ j0 ~* ojsp:getProperty name="clock1" property="time" / . R6 d4 k0 D; y8 h2 w- M
8 x( i; F! X/ Y( \
下一步测试的是 PHP,最初也准备测试 20000*20000次,但是不管把程序最大运行时间调的再大,也无法运行结束,因此改为 2000*2000 ,运行时间竟然达到 84 秒,程序代码如下: 9 v+ c! a3 e. f2 }9 a9 q8 ^/ [
1 c, ]) p8 W3 s5 c? ' d3 T' T( A5 n% G
$TTime=date("Y-n-d"). " " . date("H:i:s");
8 m, R0 A. R; L) H4 wecho $TTime; ( O6 ?8 o! e) ^' v+ h+ @
echo "br"; 3 z3 A. d x7 s" t
for($i=0;$i1000;$i ){
5 u* V0 L8 j, D2 l: i, `for($j=0;$j1000;$j ){
, n/ s) L% i1 D2 I. c}
4 S# d1 [! f$ |4 S" r}
! \* x6 p5 l$ }& N7 c9 ]: T$TTime=date("Y-n-d"). " " . date("H:i:s");
5 q8 p# E2 M, ?+ R5 _echo $TTime; $ p1 F3 L$ ?$ n6 W( z1 t9 u6 c; E
?
" F- v) m% J& Q) X& i
. @. \! Q) e5 I# ]- G" v8 ^: p" B最后进行的是Asp 的测试,测试的循环也是 2000*2000(几个0可要看清楚),运行时间是 63 秒,程序代码如下:
$ f/ e X- K% j: c' z; Q
6 a! C: s1 U8 \* V/ P%
) q% V$ _" b: o, G' ?# Q- z' y% Aresponse.write now
+ `3 Z" S Z5 \% V6 o5 qresponse.write "br"
) i& u" Y6 Z$ n W9 Wfor i=0 to 2000
2 w# O, X- R7 a7 O$ |: ~+ lfor j=0 to 2000 - V, Q$ t0 m+ x" `/ X# ?6 y; j# u
next $ E+ w' x# ]4 A' u- w
next
: e7 P. o4 J; Z# |6 E2 {response.write now
4 S* G# t6 ^1 w1 {% t0 {' b% 7 f+ Q2 F' [& a& E
" K$ f% [' ]( U5 u0 t
另外,我也对数据库连接作了测试,由于Jsp 在连接数据库时需要通过 JDBC,因此必须专门为此作一个连接数据库的JavaBean,为了简单起见,我只把测试结果写出来,想要代码的朋友,和我联系!' j! ^* C" k: `' j0 }
对 Oracle 8 进行 1000 次 Insert,Update,Select,和Delete # s% t1 ` L* `2 F
Jsp 需要 13 秒
# e) G& G; Q6 Z, }5 KPhp 需要 69 秒
, e1 R* g% R0 H$ BASP 需要 73 秒
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹