好学IT学院:IT信息技术分享交流平台
来源:IT专家网  作者:佚名  发布时间:2009-10-12  ★★★加入收藏〗〖手机版
摘要:Joe在博客中称,一般来说,作性能测试的目的是要尝试证明一方比令一方要快。我受雇于微软,同时编写PHP和ASP.NET代码。我在.NET出现之前就在使用PHP,两个东西我都很喜欢。…

从纯技术角度来说,我认为.NET远比PHP强大,但这并不意味着PHP不够强大。在我看来,PHP的力量体现在众多的应用程序以及可用的框架。

大约一周以后,Joe公开了第二次测试的结果。与前一个测试相比,第二个测试主要有以下两个改变:

为Linux和Windows上安装了op-code缓存,并重新运行了大部分测试。

由于一些依赖项的问题,PHP 5.3 + APC的测试平台变成了Debain 5操作系统。

对于第二次测试及其结果,Joe解释到:

从结果上看,Ubuntu和Debian上运行PHP的性能差距可以忽略不计。部分条目的性能有些细小的改进,有些则有25%的提高,但是总体来说其效果比我想象中要来得低。

使用APC之后,一些条目的运行反而变慢了,不过我认为这只是机器所造成的误差。请注意,表格中显示的不是第一次的结果,都是经过两次刷新,确认是在缓存命中时得到的结果。

我认为现在的测试非常公平。

空的循环测试和空的函数执行非常重要,因为这反映了语言或平台的基础消耗。这是处页面传输等性能开销外的性能消耗,是一个重要的考虑方面。

我的一些PHP朋友也认可这个测试的准确性,不过给出了非常有见解的补充:

ASP.NET在性能上的领先不会对我有什么影响。PHP是我的最爱,我的应用程序已经足够快了。没错,ASP.NET在基础性能上是比较快,但是我的应用程序可以通过优秀的页面实现和JavaScript实践把这部分性能补回来。

此外,根据上一次实验的结果,在Windows平台上运行PHP时,在MySQL和文件的访问上有一些性能问题,微软许多团队都向我获取了相关信息。希望这些数据都够转变为切实的改进。

Joe表示,他将收集大家认为更公平,更有意义的测试场景。以下是他所计划的测试项目:

*实际页面测试:循环,寒暑调用和对象操作是一类测试,不过页面的整体呈现则是另一种有意义的测试。
  *负载测试:哪一个环境可以同时处理更大量的请求。
  *在负载测试中,哪一方的性能会下降地更快。
  *在各种情况下,64位平台的表现如何。

国内也曾经进行过PHP在Linux和Windows平台上的性能测试。微软在WordCamp China 2009大会上公开了之前与康盛创想合作进行的性能评估结果:在Windows Server 2008 + IIS上运行PHP,从平均相应时间,每秒处理的请求数,以及数据吞吐量等多方便均优于Linux + Apache的托管方式。