欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP与PHP性能测试对比

程序员文章站 2022-04-13 17:46:54
 本测试数据真实,但只做为参考。欢迎大家讨论。   除做比较外,也可供php,jsp程序员参考,以便优化自己的程序。   一.算术运算   a.测试标准   循环n次,并做整型自加运算。   b.测...

 本测试数据真实,但只做为参考。欢迎大家讨论。

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

  一.算术运算

  a.测试标准

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

  b.测试

  测试代码:

测试类型 jsp int整型 jsp long整型 jsp long整型2 php php2
测试代码 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整型2 php php2
1000 0 0 0 0-1 0-1
10000 0 0 0 3-4 6-7
100000 0 0 0(16,32) 34-35 51-52
1000000 0(10) 0(16,32) 0(16,32) 348-368 527-534
10000000 0(13) 16-32 32-78 3547-3585 5239-5390
100000000 0(16) 266-281 265-281 35309-35486
1000000000 0(16,743) 2625-2676 2203-3687

  c.结论

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

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

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

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

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

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

  二.字符串运算

  a.测试标准

  字符串连接运算对比。

  b.测试

  测试代码:

测试类型 jsp php
测试代码 string str="";
while (str.length()< xxxx)
{
str ="a";
}

 

 

$str="";
while (strlen($str)< xxxx)
{
$str.="a";
}

 

 

  测试结果(单位:毫秒)

xxxx取值 jsp php
1000 0-16 1
10000 656-703 9-10
100000 105078-105235 95-103

  c.结论

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

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

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