background image

PHP 与 JSP 运行速度之再比较

关于

PHP 和 JSP 的运行速度之比较,两者的起源地--美国的网路上已经争论了很长时

间。给人的感觉是

PHP 社群总是说没有任何官方任何的测试标明 JSP 一定要比 PHP 快速,

但是

JSP 社群也总是坚持编译执行的 JSP 在先天就比解释执行(由于 Zend 公司的努力,现

在的

PHP 也应该是接近编译模式运行了)的 PHP 要快速。就我本人的观点,两者的运行速

度比较实际上意义并没有想象中那么重大

--在一个 PHP 的工程中,我们绝对依赖 PHP;而

在一个用到

JSP 的工程中,很多情况下 JSP 只是起到 MVC 模式中的表示或者控制的作用,

真正的支持还在于其后真正的

Java 家族(比如 Servlet,Bean 甚至是 EJB 等等)。因此如果

过分看重

PHP 和 JSP 在各自速度上的比较,可能并不能说明由该两种技术构建的工程的速

度因素。(至于说是否存在完全由

JSP 构建的工程,我想是有的,不过希望以后维护这个工

程的家伙不是我)

 

  但是我还是做了几次有趣的测试

--毕竟让代码们用数字展示各自的能力是一件很奇妙

的事情,并且之前我也做过有关

PHP 代码速度测试和优化的工作,由此获得的一些成就感

很容易让人忘记自己在其上花费了一夜时间。其实我做的工作也很简单,先是比较一些简单
运算的速度,然后是测试和数据库连接的速度。我的用意是把前者比作一般的表示层和控制
层的工作,而后者则被希望表示一般的逻辑层所作的工作。还是

MVC 模式。 

开始测试

 

  照例是要把测试的环境介绍一下,我采用了一台

Linux(我的开发环境)和一台

Windows(我的猪窝了)机器进行相同的测试(这样也可以顺便让 Linux 再羞辱 Windows
一次)

--所谓相同是指代码的内容相同--非常感谢我喜欢的这两种语言都是跨平台的。具体

的配置如下:

 

  

 

(猜猜看同样的代码在哪台机器上跑得快哪?下面你将会得到答案)

 

  然后就是一些简单的

Coding。我把写好的 JSP 放在了 Linux 平台上,首先是 1000×1000

次的算术运算操作,采用两个

for 循环完成它。这样的循环次数比较保守,因为我也不知道

JSP 究竟是否能在我不耐烦的按下浏览器的"停止"按钮之前执行完它们--可是事实却让我小
小的吃惊了一次

--在大约 13 毫秒左右的时间内这样数目巨大的循环被完成了。于是我又很

不平衡的在两个循环的最大数后面各加了一个

0--10000×10000 次循环!不出我所料,等待

的时间也不过是

1.33-1.34 秒左右。应该说,在没有写 PHP 的相关功能之前,我已经感觉到

JSP 的强大速度优势。