ASP.NET比拼PHP的测试

2012 年 11 月 7 日5150

ASP.NET比拼PHP的测试环境如下:

◆所有的测试都在同一台机器上运行(拥有4G内存和60G 7200转硬盘的Toshiba Tecra M5)。

◆Ubuntu 9和Windows Server 2008标准版分别安装于独立(但相同)的硬盘中。

◆Linux使用Apache2,Windows使用IIS 7作为各自的Web服务器。

◆双方的操作系统都进行了完整的patch或升级。

◆双方的系统和运行时都没有进行额外的性能增强。

从实验结果上看,PHP在Linux和Windows的执行性能各有千秋:

◆纯粹的语句执行在Windows上表现更好。

◆函数调用在Windows上更快。

◆对象的创建和访问,对于PHP 5.2来说在Linux上更快,但是对于PHP 5.3来说则是Windows更快。

◆类库调用在Linux上快得多(如在Ubuntu上进行加密要比Windows要快3到5倍)。

Linux与Windows平台对比

在Linux上访问文件性能略高于Windows,不过Windows上文件复制的性能要比Linux慢60%,可能是ACL高级安全的缘故。

在Linux上访问MySQL要比Windows快不少,而且在Windows上运行PHP 5.3的情况则更为恶劣(不过从下面PostgreSQL的情况上来看,这应该是糟糕实现的缘故)。

PostgreSQL在两个平台上的性能非常接近(1000个操作的差距在0.06秒之内)——无论是PHP 5.3还是PHP 5.2,Windows上表现都略胜一筹。

Windows上PHP 5.2访问MS SQL Server的性能稍逊于在Linux上访问MySQL(此时还没有面向PHP 5.3的SQL Server支持)。

对于纯粹的PHP执行性能来说,Linux和Windows相差无几,这不会成为选择Linux或Windows作为部署平台的决定性因素。如果你在构建一个应用程序,那么PostgreSQL可能是更好的选择。因为它在两个平台上的表现都很优秀。

如果你的应用程序必须使用MySQL,那么选择Windows就需要早些计划扩展性问题了(个人认为Sun不太可能为Windows优化MySQL的性能)。

PHP的第一个版本的SQL Server驱动程序要比MySQL或PostpreSQL要慢一些,但这应该不会成为问题。第二个版本的驱动器正在开发之中,它会带来性能提升。

在Joe看来,全面来看,PHP和IIS团队在执行性能上已经做的非常成功,接下来就需要各开源程序的团队(Drupal、WordPress、Joomla等等)为各平台进行性能优化了。

不过,除了文件复制操作之外,ASP.NET在性能方面全面领先于PHP(无论部署在Linux还是Windows上面):

Linux上访问MySQL的性能稍稍优于Windows上访问SQL Server的性能(使用普通的数据类型和SELECT语句)。但是这里的差距几乎可以忽略不计。

ASP.NET(C#)操作,如对象使用,类库调用等等,其性能都远高于PHP。对于这个测试结果,Joe补充道:

我知道我的一些PHP朋友和Linux伙计们要跳出来驳斥我的测试和结果了。

我一直在思考,这样的性能比较是否需要加入一些高级的优化选项。不过.NET方面也有例如多线程,异步请求,和各种缓存方式可以使用

请注意——我并没有说“ASP.NET更快,所以你不应该使用PHP!”,我使用认为,PHP过于简单导致对某些高级应用来说有些举步维艰,就像ASP.NET在项目早期会有学习方面的复杂性。

对我来说,PHP最令人兴奋的地方不是它的语言/平台,而是成千上万聪明的PHP开发人员,以及各种优秀的项目(如Drupal、Joomla、WordPress、PHPBB、Nuke等等)。

可以这么认为,PHP在Windows和Linux上的性能处于同一个水平上,我现在终于可以为Windows编写那些我盼望着许多年的PHP类库了。

Joe还公开了测试代码。他表示,如果你对这个测试的结果有疑义,可以亲自进行这个实验,或是编写你自己的测试代码进行试验。

顶一下

(1)

20%

踩一下

(4)

80%

【责任编辑:绝口不提】

标签:

上一篇:国内.NET类CMS 为什么做得很累很苦

下一篇:ASP.NET高级控件

0 0