日期:2014-05-16  浏览次数:20352 次

PHP与JSP上演超详细性能测试大PK

在网上有多关于PHP与JSP的性能比较,有些结果表明PHP比JSP性能低了很多,本文将客观的展现PHP与JSP的性能测试比较,且都为真实数据。当然, 这里面并没有包含.Net。

测试环境:

◆硬件:P4 2.4G,1G内存

◆软件:WindowsXP+Apache2.0.54+PHP4.4.0+Mysql4.1.14+Tomcat5.0.28

一.算术运算

a.测试标准

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

b.测试代码

测试代码

测试结果(单位:毫秒)

?

测试结果

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

c.结论

Java的算术运算,优化得很好,估计是直接的对应CPU的指令,数值再大,算术运算性能都很平稳。需要注意的是,long的运算时间要比int的运算时间要长一些(毕竟是32位的系统),所以,在无需用到long时,尽量不要用long,而用int.

PHP是弱类型的变量,算术运算很不尽人意,估计不是直接对应机器码的算术运算。PHP算术运算的过程猜测如下,在运算前需要检测变量是否是数值,并要将非数值转换成数值,比如,PHP可以做这样的运算:100+"zhoutang",结果等于100.正是因为是弱类型语言,加上运算前的检测和转换,所以才导致算术运算的性能低下。PHP的单次运算时间比较稳定,大概每10000次算术加运算花费的时间约为3.5ms

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

二.字符串运算

a.测试标准

字符串连接运算对比。

b.测试

测试

测试结果(单位:毫秒)

测试结果

c.结论

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

PHP的字符串运算,估计很多是直接调用C的字符串函数,所以效率会高很多。在做Web开发中,字符串的连接操作还是很频繁的(包括很多时候生成SQL字符串),所以,在算术运算和字符串运算两个方面,Java(JSP)优势不明显,与PHP各有所长。

三.数据库查询

a.测试标准

循环N次做数据库打开,查询,关闭操作。主要对JSP直接连数据库,JSP连接池连数据训,PHP直接连数据库,PHP持久连数据库做比较。

b.测试代码

  1. JSP ?
  2. ?
  3. String?dbUrl,?dbUser,?dbPwd,?strSQL; ?
  4. dbUrl?=?"jdbc:mysql://localhost:3306/zhoutang"; ?
  5. dbUser?=?"root"; ?
  6. dbPwd?=?""; ?
  7. strSQL?=?"update?tblUser?set?UserLC=UserLC+1?where?UserID=100";? ?
  8. Class.forName("com.mysql.jdbc.Driver"); ?
  9. Connection?con; ?
  10. Statement?stmt; ?
  11. ?
  12. int?i?=?0; ?
  13. while?(i?<?XXX)?{ ?
  14. ??????con?=?DriverManager.getConnection(dbUrl,dbUser,dbPwd); ?