企业建站应该选择的哪种语言
ASP.NET和PHP全面对比
谁是速度之王
刚刚在9月编程语言排行榜上取得历史性突破的PHP在Web开发领域最到的对手可能就是基于微软.NET技术的ASP.NET。近日微软的Joe Stagner在博客上发表了一系列文章比较了PHP和ASP.NET性能方面的文章 引起了来自双方程序员的大量回应。 Joe表示他会将这样的测试持续下去并寻求更为合适的方式 以获得对实际项目来说尽可能有参考价值的结论。
Joe在博客中称一般来说作性能测试的目的是要尝试证明一方比令一方要快。我受雇于微软 同时编写P H P和AS P.N ET代码。我在.N ET出现之前就在使用P H P两个东西我都很喜欢。
所以我很难说出哪个更好。当我说PHP好话时我的微软同事们会写信来批评我而当我发表倾向于AS P.N ET的言论时我的P H P朋友们会说我是微软的托。
我进行这个测试是因为每个人都对PHP的性能有自己的看法Windows vs. Linux&
5.2 vs.5.3 却没人能给出明确的数据。
对象的创建和访问对于PHP 5.2来说在Linux上更快但是对于PHP 5.3来说则是W indows更快。
类库调用在Linux上快得多如在Ubuntu上进行加密要比Windows要快3到5倍 。
Linux与Windows平台对比
在Linux上访问文件性能略高于Windows不过Windows上文件复制的性能要比Linux慢60%可能是ACL高级安全的缘故。
在Linux上访问MySQL要比Windows快不少而且在Windows上运行PHP 5.3的情况则更为恶劣不过从下面Postg reSQL的情况上来看这应该是糟糕实现的缘故 。
Postg reSQL在两个平台上的性能非常接近1000个操作的差距在0.06秒之内——无论是PHP 5.3还是PHP 5.2Windows上表现都略胜一筹。
Windows上PHP 5.2访问MS SQL Server的性能稍逊于在Linux上访问MySQL 此时还没有面向PHP 5.3的SQL Server支持 。
对于纯粹的PHP执行性能来说 Linux和Windows相差无几这不会成为选择Linux或W indows作为部署平台的决定性因素。如果你在构建一个应用程序那么PostgreSQL可能是更好的选择。因为它在两个平台上的表现都很优秀。
如果你的应用程序必须使用MySQL那么选择W indows就需要早些计划扩展性问题了个人认为Sun不太可能为W indows优化MySQL的性能 。
PHP的第一个版本的SQL Server驱动程序要比MySQL或PostpreSQL要慢一些但这应该不会成为问题。第二个版本的驱动器正在开发之中它会带来性能提升。
在J o e看来全面来看 P H P和IIS团队在执行性能上已经做的非常成功接下来就需要各开源程序的团队Drupal、WordPress、 Joomla等等为各平台进行性能优化了。
不过除了文件复制操作之外 AS P.N ET在性能方面全面领先于P H P 无论部署在Linux还是Windows上面
Linux上访问MySQL的性能稍稍优于Windows上访问SQL Server的性能使用普通的数据类型和SELECT语句 。但是这里的差距几乎可以忽略不计。
ASP.NETC#操作如对象使用类库调用等等其性能都远高于PHP。对于这个测试结果 Joe补充道
我知道我的一些PHP朋友和Linux伙计们要跳出来驳斥我的测试和结果了。
我一直在思考这样的性能比较是否需要加入一些高级的优化选项。不过.NET方面也有例如多线程异步请求和各种缓存方式可以使用
请注意——我并没有说“AS P.N ET更快所以你不应该使用P H P ”我使用认为PHP过于简单导致对某些高级应用来说有些举步维艰就像ASP.NET在项目早期会有学习方面的复杂性。
对我来说 PHP最令人兴奋的地方不是它的语言/平台而是成千上万聪明的PHP开发人员 以及各种优秀的项目 如Drupal、 Joomla、WordPress、 PHPBB、 Nuke等等 。
可以这么认为 PHP在Windows和Linux上的性能处于同一个水平上我现在终于可以为W indows编写那些我盼望着许多年的PHP类库了。
Joe还公开了测试代码。他表示如果你对这个测试的结果有疑义可以亲自进行这个实验或是编写你自己的测试代码进行试验。
文章发布之后许多网友对这一测试结果发表了看法。 Joe基本上逐一回复了其中的主要观点
“我使用ASP.NET只是因为我喜欢Visual Studio IDE”——我个人认为Visual Studio是最有生产力的开发工具。但是 PHP的有不错的选择。我使用Zend Studio PHPEdKomodo Delphi for PHP这些都很不错。我讨厌Ecl ipse不过Zend也在这方面为PHP开发做了不少扩展。
应该比较AS P的性能——不用了谢谢。 旧式的AS P与目前的P H P与AS P.N ET差距太大了。做这种比较似乎是在建议使用ASP开发新项目我强烈不建议你这么做。
32位与64位系统对比
32位与64位系统之间的比较——这些测试的目的并不是为了体现64位系统上的性能差距。今后的测试我会增加64位的场景。
“P H P丑陋至极”——哦我不同意。 旧式AS P要丑陋多了。你可以写出非常可怕而丑陋的PHP代码也可以写出丑陋而可怕的C#或VB代码。 同样你也可以写出优雅的C++样式的PHP。这完全只和开发人员的技能有关。
应该使用Windows上的Apache进行测试——Apache是Linux上的服务器不过我认为如果你在Windows上不使用IIS 7则会损失太多太多东西了。
“有办法在W in 2 K8中在不损失安全性的前提下加快文件复制性能吗 ”——似乎不行。我认为这涉及到W indows服务器上的ACL系统。我以后可能会测试通过数据流读取文件的性能有些东西的性能可能会有所改善。不过Web应用程序一般不会编程来复制大量文件。
“PHP一直是也永远只是一个半专业性质的环境”——这种说法狗屁不通。 PHP平台上有许多专业的高质量的应用程序也有很多我非常尊敬的开发人员。是否专业是开发人员的问题不是P H P或AS P.N ET的问题。
“我认为比较没有opcode缓存的PHP很不公平 .NET是编译执行的而PHP需要每次都解释并„编译‟页面”——我同意这个测试可能不够完整但是我不认同这个逻辑。我测试PHP的方式就和下载安装的方式一样。我的虚拟主机也没有安装op-code缓存。而事实上 ASP.NET自带这个特性也并不意味着测试是不公平的这是因为PHP缺少这个特性——不过这个要求很合理我正在准备新的测试。
“说PHP不是一个„专业的‟语言很没道理 因为几乎所有最大的站点都是用PHP构建的”——这种说法是没道理不过说那些站点“几乎都是”用PHP构建的也是错误的。有些是有些不是。
如果你们看到这一数据之后对AS P.N ET信心倍增我自然很高兴。如果我不认为.N ET是开发Web应用程序来说是一种更好的选择——至少不属于其它平台那么我也不会在微软工作了。
但是……如果你因为这些数据而忽视PHP也是错误且幼稚的行为。
从纯技术角度来说我认为.NET远比PHP强大但这并不意味着PHP不够强大。在我看来 PHP的力量体现在众多的应用程序以及可用的框架。
大约一周以后 Joe公开了第二次测试的结果。与前一个测试相比第二个测试主要有以下两个改变
为Linux和W indows上安装了op-code缓存并重新运行了大部分测试。
由于一些依赖项的问题 PHP 5.3+APC的测试平台变成了Debain 5操作系统。
对于第二次测试及其结果 Joe解释到
从结果上看 Ubuntu和Debian上运行PHP的性能差距可以忽略不计。部分条目的性能有些细小的改进有些则有25%的提高但是总体来说其效果比我想象中要来得低。
使用APC之后一些条目的运行反而变慢了不过我认为这只是机器所造成的误差。请注意表格中显示的不是第一次的结果都是经过两次刷新确认是在缓存命中时得到的结果。
我认为现在的测试非常公平。
空的循环测试和空的函数执行非常重要 因为这反映了语言或平台的基础消耗。这是处页面传输等性能开销外的性能消耗是一个重要的考虑方面。
我的一些PHP朋友也认可这个测试的准确性不过给出了非常有见解的补充
ASP.NET在性能上的领先不会对我有什么影响。 PHP是我的最爱我的应用程序已经足够快了。没错 AS P.N ET在基础性能上是比较快但是我的应用程序可以通过优秀的页面实现和JavaScript实践把这部分性能补回来。
此外根据上一次实验的结果在W indows平台上运行PHP时在MySQL和文件的访问上有一些性能问题微软许多团队都向我获取了相关信息。希望这些数据都够转变为切实的改进。
Joe表示他将收集大家认为更公平更有意义的测试场景。 以下是他所计划的测试项目
实际页面测试循环寒暑调用和对象操作是一类测试不过页面的整体呈现则是另一种有意义的测试。
负载测试哪一个环境可以同时处理更大量的请求。
在负载测试中哪一方的性能会下降地更快。
在各种情况下 64位平台的表现如何。
国内也曾经进行过PHP在Linux和Windows平台上的性能测试。微软在WordCampChina 2009大会上公开了之前与康盛创想合作进行的性能评估结果在Windows Server2008+IIS上运行PHP从平均相应时间每秒处理的请求数 以及数据吞吐量等多方便均优于Linux+Apache的托管方式
更多详细资料请参考:http://www.v 5 px.com
谢谢品读
这两天在站长群里看到不少有使用DEDECMS织梦程序的朋友比较着急,因为前两天有看到来自DEDECMS,我们熟悉的织梦程序官方发布的公告,将会在10月25日开始全面商业用途的使用DEDECMS内容管理程序的会采用授权收费模式,如果我们有在个人或者企业商业用途的,需要联系且得到授权才可以使用,否则后面会通过维权的方式。对于这个事情,我们可能有些站长经历过,比如字体、图片的版权。以及有一些国内的CMS...
华纳云怎么样?华纳云是香港老牌的IDC服务商,成立于2015年,主要提供中国香港/美国节点的服务器及网络安全产品、比如,香港服务器、香港云服务器、香港高防服务器、香港高防IP、美国云服务器、机柜出租以及云虚拟主机等。以极速 BGP 冗余网络、CN2 GIA 回国专线以及多年技能经验,帮助全球数十万家企业实现业务转型攀升。华纳云针对618返场活动,华纳云推出一系列热销产品活动,香港云服务器低至3折,...
数脉科技怎么样?昨天看到数脉科技发布了7月优惠,如果你想购买香港服务器,可以看看他家的产品,性价比还是非常高的。数脉科技对香港自营机房的香港服务器进行超低价促销,可选择10M、30M的优质bgp网络。目前商家有优质BGP、CN2、阿里云线路,国内用户用来做站非常不错,目前E3/16GB阿里云CN2线路的套餐有一个立减400元的优惠,有需要的朋友可以看看。点击进入:数脉科技商家官方网站香港特价阿里云...