- 浏览: 835477 次
- 性别:
- 来自: lanzhou
文章分类
最新评论
-
liu346435400:
楼主讲了实话啊,中国程序员的现状,也是只见中国程序员拼死拼活的 ...
中国的程序员为什么这么辛苦 -
qw8226718:
国内ASP.NET下功能比较完善,优化比较好的Spacebui ...
国内外开源sns源码大全 -
dotjar:
敢问兰州的大哥,Prism 现在在12.04LTS上可用么?我 ...
最佳 Ubuntu 下 WebQQ 聊天体验 -
coralsea:
兄弟,卫星通信不是这么简单的,单向接收卫星广播信号不需要太大的 ...
Google 上网 -
txin0814:
我成功安装chrome frame后 在IE地址栏前加上cf: ...
IE中使用Google Chrome Frame运行HTML 5
上个月Joe Stagner在博客上发表了一系列文章比较了PHP和ASP.NET的执行性能,引起了来自双方程序员的大量回应。Joe表示,他会将这样的测试持续下去,并寻求更为合适的方式,以获得对实际项目来说尽可能有参考价值的结论。
Joe表示:
一般来说,作性能测试的目的是要尝试证明一方比令一方要快。我受雇于微软,同时编写PHP和ASP.NET代码。我在.NET出现之前就在使用PHP,两个东西我都很喜欢。
所以,我很难说出哪个更好。当我说PHP好话时,我的微软同事们会写信来批评我,而当我发表倾向于ASP.NET的言论时,我的PHP朋友们会说我是微软的托。
我进行这个测试是因为每个人都对PHP的性能有自己的看法(Windows vs. Linux & 5.2 vs. 5.3),却没人能给出明确的数据。
根据Joe的描述,测试环境如下:
所有的测试都在同一台机器上运行(拥有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,不过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支持)。
Joe认为,这表示:
我们可以这么认为,对于纯粹的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还公开了测试代码。他表示,如果你对这个测试的结果有疑义,可以亲自进行这个实验,或是编写你自己的测试代码进行试验。
文章发布之后,许多网友对这一测试结果发表了看法。Joe基本上逐一回复了其中的主要观点:
“我使用ASP.NET只是因为我喜欢Visual Studio IDE”——我个人认为Visual Studio是最有生产力的开发工具。但是,PHP的有不错的选择。我使用Zend Studio,PHPEd,Komodo,Delphi for PHP,这些都很不错。我讨厌Eclipse,不过Zend也在这方面为PHP开发做了不少扩展。
应该比较ASP的性能——不用了,谢谢。旧式的ASP与目前的PHP与ASP.NET差距太大了。做这种比较,似乎是在建议使用ASP开发新项目,我强烈不建议你这么做。
32位与64位系统之间的比较——这些测试的目的并不是为了体现64位系统上的性能差距。今后的测试我会增加64位的场景。
“PHP丑陋至极”——哦,我不同意。旧式ASP要丑陋多了。你可以写出非常可怕而丑陋的PHP代码,也可以写出丑陋而可怕的C#或VB代码。同样,你也可以写出优雅的C++样式的PHP。这完全只和开发人员的技能有关。
应该使用Windows上的Apache进行测试——Apache是Linux上的服务器,不过我认为如果你在Windows上不使用IIS 7则会损失太多太多东西了。
“有办法在Win2K8中,在不损失安全性的前提下加快文件复制性能吗?”——似乎不行。我认为这涉及到Windows服务器上的ACL系统。我以后可能会测试通过数据流读取文件的性能,有些东西的性能可能会有所改善。不过,Web应用程序一般不会编程来复制大量文件。
“PHP一直是,也永远只是一个半专业性质的环境”——这种说法狗屁不通。PHP平台上有许多专业的,高质量的应用程序,也有很多我非常尊敬的开发人员。是否专业是开发人员的问题,不是PHP或ASP.NET的问题。
“我认为比较没有opcode缓存的PHP很不公平,.NET是编译执行的,而PHP需要每次都解释并‘编译’页面”——我同意这个测试可能不够完整,但是我不认同这个逻辑。我测试PHP的方式,就和下载安装的方式一样。我的虚拟主机也没有安装op-code缓存。而事实上,ASP.NET自带这个特性也并不意味着测试是不公平的,这是因为PHP缺少这个特性——不过这个要求很合理,我正在准备新的测试。
“说PHP不是一个‘专业的’语言很没道理,因为几乎所有最大的站点都是用PHP构建的”——这种说法是没道理,不过说那些站点“几乎都是”用PHP构建的也是错误的。有些是,有些不是。
Joe补充道:
如果你们看到这一数据之后对ASP.NET信心倍增我自然很高兴。如果我不认为.NET是开发Web应用程序来说是一种更好的选择——至少不属于其它平台,那么我也不会在微软工作了。
但是……如果你因为这些数据而忽视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实践把这部分性能补回来。
我在进行Drupal开发,我对PHP最熟悉,因此我宁愿多花一些硬件来保持更好的开发效率。
这些都是很不错的评论!
此外,根据上一次实验的结果,在Windows平台上运行PHP时,在MySQL和文件的访问上有一些性能问题,微软许多团队都向我获取了相关信息。希望这些数据都够转变为切实的改进。
Joe表示,他将收集大家认为更公平,更有意义的测试场景。以下是他所计划的测试项目:
实际页面测试:循环,寒暑调用和对象操作是一类测试,不过页面的整体呈现则是另一种有意义的测试。
负载测试:哪一个环境可以同时处理更大量的请求。
在负载测试中,哪一方的性能会下降地更快。
在各种情况下,64位平台的表现如何。
国内也曾经进行过PHP在Linux和Windows平台上的性能测试。InfoQ曾经报道过微软在WordCamp China 2009大会上公开了之前与康盛创想合作进行的性能评估结果:在Windows Server 2008 + IIS上运行PHP,从平均相应时间,每秒处理的请求数,以及数据吞吐量等多方便均优于Linux + Apache的托管方式。
您的看法如何?您希望看到什么样的测试呢?
发表评论
-
[图解]搞笑漫画图解几大浏览器的区别
2010-03-20 08:48 1308[图解]搞笑漫画图解几大浏览器的区别 ... -
Web 设计与开发终极资源大全
2010-03-20 08:41 1612Web 技术突飞猛进,Web 设计与开发者们可以选择的工具越来 ... -
超炫jQuery 运动特效展示
2010-03-08 10:30 19131. 流感导航菜单 下面 ... -
Apple removes over 5000 apps from iPhone app store
2010-02-23 08:04 904Apple is causing a stir in the ... -
RIP Google Gears
2010-02-22 07:56 755Back in December, we discussed ... -
美报称谷歌遭攻击源自中国两学校 校方否认
2010-02-20 08:04 640环球网2月19日消息 谷歌近期受到黑客攻击,美国媒体报道说,源 ... -
互联网现状(图片)
2010-02-18 08:34 845如图: -
下一个Twitter?
2010-02-18 08:21 1079也许很多人还不知道, ... -
北京电信推3G宽带新套装
2010-02-08 08:58 800中国电信北京公司(以下简称北京电信)近日宣布,已于2月1日全新 ... -
网友声音:我讨厌Chrome OS的五大理由
2010-01-18 14:55 1757自从Google公布Chrome OS的第一条信息,关于它的讨 ... -
Microsoft should follow Google and drop censorship in China
2010-01-14 09:10 836Kudos to Google for finally sta ... -
Gmail全面升级为https数据加密型邮箱服务
2010-01-14 09:04 929谷歌邮件服务Gmail的博客又发了新帖。该博客表示在2008的 ... -
Google 在首页号召大家帮助海地地震的幸存者
2010-01-14 09:01 711Google在海地发生7级地震后,迅速做出反应, 在英文首页 ... -
百度主页被黑11小时 黑客反击多家伊朗网站被黑
2010-01-14 08:44 953“伊朗网军”攻击说引质疑 从1月12日早上7点半开 ... -
看看老外是怎么评价操作系统的!
2009-12-20 11:29 869def this_is_really_funny ... -
Google推免费公共DNS服务 OpenDNS反击
2009-12-10 11:22 1076上周五Google宣布向所有的互联网用户提供一组快速,安全 ... -
BT网站被关后 最大电驴下载网陷“故障门”
2009-12-10 11:14 1349因没有获取广电总局颁发的《信息网络传播视听节目许可证》,BT ... -
电驴瘫痪网友纷纷“哀悼” 官网称线路故障10日恢复
2009-12-10 04:00 968针对P2P资源分享网站Very ... -
VeryCD网站无法正常访问 或遭广电总局关闭
2009-12-09 15:18 72212月9日下午消息,多名网友向腾讯科技反映,就在昨天还可以 ... -
外刊:投资暴雪股票十大理由
2009-11-22 05:41 833投资月刊《SINLetter》编 ...
相关推荐
PHP与ASP.NET优劣势分析 在Web开发领域中,PHP和ASP.NET是两个非常流行的平台,但是它们在性能、安全性、价格、开源性等方面存在着很大的差异。下面我们将对这两个平台进行详细的分析和比较。 性能 从性能方面来...
Web开发技巧不断的完善,更多更加丰富的应用程序也随之诞生,ASP.NET使用.NET平台进行Web应用程序的开发有着先天性的优势,开发人员能够快速的使用ASP.NET提供的控件和开发方法进行复杂的应用程序开发,同时ASP.NET...
运行环境: ASP.NET(2.0) ACCESS/SQL SERVER 较上一版的更新: 新增: 在 itransfer 调用函数中新增 rst 参数。 在 jtbc 标签中加入 直接调用 itransfer 和 isort 函数的方式。 修复: 修复模版中的函数不能三...
运行环境: ASP.NET(2.0) ACCESS/SQL SERVER 较上一版的更新: 新增: 在 itransfer 调用函数中新增 rst 参数。 在 jtbc 标签中加入 直接调用 itransfer 和 isort 函数的方式。 修复: 修复模版中的函数不能三...
HttpUploader4更加注重对硬盘的保护,在HttpUploader4中不再直接对文件进行I/O操作,而是在内存中对文件进行操作,所以不仅极大的减少了对硬盘的读写次数,同时速度却变的更快了。 借助于HttpUploader4企业能够帮助...
再比如ASP.Net内置的AJAX解决方案UpdatePanel只在部分要求不高的内网项目中才被使用,因此我们在讲解UpdatePanel的使用和原理之外,把更多的时间放在讲解企业中用的最多的JQuery AJAX解决方案上。 6、B/S系统项目(7...
Web开发技巧不断的完善,更多更加丰富的应用程序也随之诞生,ASP.NET使用.NET平台进行Web应用程序的开发有着先天性的优势,开发人员能够快速的使用ASP.NET提供的控件和开发方法进行复杂的应用程序开发,同时ASP.NET...
内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试...
源码为官网同功能版,模板和功能都一样,此版本为2013年使用,基于asp.net mvc3.0开发,在综合架构上属于多层架构 ,开发目标为(具备一定互动分享功能的壁纸网站系统)数据库为sql2000 ,开发软件为 VS2012 。...
《风越C# ASP.Net代码生成器 [FireCode Creator]》是一款基于多种数据库的程序代码生成软件,可快速建立:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层框架程序、.net Windows程序,...
分类信息网站系统正式版提供有桔红色.net综合风格分类网站模板,同时还提供有.net同城风格分类信息网页模板,asp.net分类信息网站系统地方门户版风格网站模板免费大餐来了,完全免费的asp.net+mssql简易风格分类信息...
源码名称:网软分类信息系统asp.net正式版下载分类信息网站网页模板 源码版本:V2020 建议分类:源码下载/asp.net源码/分类信息 联系EMAIL:38306293@qq.com 软件网站:http://www.wrzc.net 演示网站:...
4.Share模式下,将有数百人组团推广,为你推广更快成团!利润翻800倍! 5.软件平台稳定,TOUCH多年成熟技术团队全力支持! 6.邮件订阅功能 7.“你想团什么”团购3.0功能 8.在线问答功能 9.本单咨询功能 10.往日团购...
内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试...
-使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。...
复杂的报表?在Report Machine面前,还会有什么复杂的报表存在吗?不,不会有的,因为这是一个功能强大,完全自动化、完全自由设计的报表控件... 22、提供webreport方案,可以在asp,asp.net,php中实现报表的打印预览。
mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速...
内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试...
《风越.net代码生成器 [FireCode Creator]》是一款采用.Net ...内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。
支持语言:PHP,JSP,ASP,ASP.NET(C#),ASP.NET(VB),C++,VC,VC.NET,VB,VB.NET,C#,C#.NET,Delphi,C++Builder 支持平台:Visual Studio 6.0/2002/2003/2005/2008/2010,C++ Builder 6.0/2009/2010,Delphi 7/2009,Visual ...