JSP与PHP性能测试对比
本测试数据真实,但只做为参考。欢迎大家讨论。
除做比较外,也可供PHP,JSP程序员参考,以便优化自己的程序。
一.算术运算
a.测试标准
循环N次,并做整型自加运算。
b.测试
测试代码:
测试类型 | JSP int整型 | JSP long整型 | JSP long整型2 | PHP | PHP2 |
测试代码 | int i=0;
|
long l=0;
|
long l=0;
|
$i=0;
|
$i=0;
|
测试结果(单位:毫秒)
测试结果说明: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="";
|
$str="";
|
测试结果(单位:毫秒)
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各有所长。
补充:Web开发 , Jsp ,