Welcome

首页 / 网页编程 / JSP / JSP、PHP详细性能测试

JSP、PHP详细性能测试2010-01-01 博客园 依然微笑本测试数据真实,但只做为参考。欢迎大家讨论。

除做比较外,也可供PHP,JSP程序员参考,以便优化自己的程序。

一.算术运算

a.测试标准

循环N次,并做整型自加运算。

b.测试

测试代码:

测试类型JSP int整型JSP long整型JSP long整型2PHPPHP2
测试代码int i=0;
while (i<XXXX)
{
i++;
}
long l=0;
while (l<XXXX)
{
l++;
}
long l=0;
while (l<XXXX)
{
l=l+1;
}
$i=0;
while ($i<XXXX)
{
$i++;
}
$i=0;
while ($i<XXXX)
{
$i=$i+1;
}

测试结果(单位:毫秒)

测试结果说明:m-n表示主要波动范围介于m和n之间;n表示出现次数非常之多的数值或平均值,m (x,y)表示偶尔会出现x,y。以下相同。

XXXX取值JSP int整型JSPlong整型JSPlong整型2PHPPHP2
10000000-10-1
100000003-46-7
100000000(16,32)34-3551-52
10000000(10)0(16,32)0(16,32)348-368527-534
100000000(13)16-3232-783547-35855239-5390
1000000000(16)266-281265-28135309-35486
10000000000(16,743)2625-26762203-3687

c.结论

Java的算术运算,优化得很好,估计是直接的对应CPU的指令,数值再大,算术运算性能都很平稳。

需要注意的是,long的运算时间要比int的运算时间要长一些(毕竟是32位的系统),所以,在无需用 到long时,尽量不要用long,而用int.

PHP是弱类型的变量,算术运算很不尽人意,估计不是直接对应机器码的算术运算。

PHP算术运算的过程猜测如下,在运算前需要检测变量是否是数值,并要将非数值转换成数值,比如 ,PHP可以做这样的运算:100+"zhoutang",结果等于100.正是因为是弱类型语言,加上运算 前的检测和转换,所以才导致算术运算的性能低下。

PHP的单次运算时间比较稳定,大概每10000次算术加运算花费的时间约为3.5ms

不同的运算方法,也对性能有影响。

二.字符串运算

a.测试标准

字符串连接运算对比。

b.测试

测试代码:

测试类型JSPPHP
测试代码String str="";
while (str.length()< XXXX)
{
str+="a";
}
$str="";
while (strlen($str)< XXXX)
{
$str.="a";
}

测试结果(单位:毫秒)

XXXX取值JSPPHP
10000-161
10000656-7039-10
100000105078-10523595-103

c.结论

Java的字符串是用对象处理,很明显,在字符串的比较过程中,Java比PHP差很远。(因为字符串操作 ,很大部分要做连接,这里只比较连接运算,另外粗略比较了一下substring,两者的差别不是很大)

PHP的字符串运算,估计很多是直接调用C的字符串函数,所以效率会高很多。

在做WEB开发中,字符串的连接操作还是很频繁的(包括很多时候生成SQL字符串),所以,在算术运算 和字符串运算两个方面,Java(JSP)优势不明显,与PHP各有所长。