|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有专家说:java不是跨平台,java就是平台,这很好的定义了java的特点。有了java,你只需要等待java平台在新平台上移植。这还不错吧!只是,java不是一个平台,而是多个平台。你需要在这个java平台移植到另一个java平台。</p>方才在9月编程言语排行榜上获得汗青性冲破的PHP在Web开辟范畴最到的敌手大概就是基于微软.NET手艺的ASP.NET。克日,微软的JoeStagner在博客上宣布了一系列文章对照了PHP和ASP.NET功能方面的文章,引发了来自两边程序员的大批回应。Joe暗示,他会将如许的测试延续下往,并追求更加符合的体例,以取得对实践项目来讲尽量有参考代价的结论。
Joe在博客中称,一样平常来讲,作功能测试的目标是要实验证实一方比令一方要快。我受雇于微软,同时编写PHP和ASP.NET代码。我在.NET呈现之前就在利用PHP,两个器材我都很喜好。
以是,我很难说出哪一个更好。当我说PHP坏话时,我的微软同事们会写信来品评我,而当我宣布偏向于ASP.NET的行动时,我的PHP伴侣们会说我是微软的托。
我举行这个测试是由于每一个人都对PHP的功能有本人的意见(Windowsvs.Linux&5.2vs.5.3),却没人能给出明白的数据。
ASP.NET比拼PHP的测试情况以下:
* 一切的测试都在统一台呆板上运转(具有4G内存和60G7200转硬盘的ToshibaTecraM5)。
* Ubuntu9和WindowsServer2008尺度版分离安装于自力(但不异)的硬盘中。
* Linux利用Apache2,Windows利用IIS7作为各自的Web服务器。
* 两边的操纵体系都举行了完全的patch或晋级。
* 两边的体系和运转时都没有举行分外的功能加强。
从实行了局上看,PHP在Linux和Windows的实行功能半斤八两:
* 地道的语句实行在Windows上体现更好。
* 函数挪用在Windows上更快。
* 工具的创立和会见,关于PHP5.2来讲在Linux上更快,可是关于PHP5.3来讲则是Windows更快。
* 类库挪用在Linux上快很多(如在Ubuntu长进行加密要比Windows要快3到5倍)。
Linux与Windows平台对照
在Linux上会见文件功能略高于Windows,不外Windows上文件复制的功能要比Linux慢60%,多是ACL初级平安的原因。
在Linux上会见MySQL要比Windows快很多,并且在Windows上运转PHP5.3的情形则更加卑劣(不外从上面PostgreSQL的情形下去看,这应当是糟完成的原因)。
PostgreSQL在两个平台上的功能十分靠近(1000个操纵的差异在0.06秒以内)——不管是PHP5.3仍是PHP5.2,Windows上体现都略胜一筹。
Windows上PHP5.2会见MSSQLServer的功能稍逊于在Linux上会见MySQL(此时还没有面向PHP5.3的SQLServer撑持)。
关于地道的PHP实行功能来讲,Linux和Windows相差无几,这不会成为选择Linux或Windows作为部署平台的决意性要素。假如你在构建一个使用程序,那末PostgreSQL多是更好的选择。由于它在两个平台上的体现都很优异。
假如你的使用程序必需利用MySQL,那末选择Windows就必要早些企图扩大性成绩了(团体以为Sun不太大概为Windows优化MySQL的功能)。
PHP的第一个版本的SQLServer驱动程序要比MySQL或PostpreSQL要慢一些,但这应当不会成为成绩。第二个版本的驱动器正在开辟当中,它会带来功能提拔。
在Joe看来,周全来看,PHP和IIS团队在实行功能上已做的十分乐成,接上去就必要各开源程序的团队(Drupal、WordPress、Joomla等等)为各平台举行功能优化了。
不外,除文件复制操纵以外,ASP.NET在功能方面周全抢先于PHP(不管部署在Linux仍是Windows下面):
Linux上会见MySQL的功能稍稍优于Windows上会见SQLServer的功能(利用一般的数据范例和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只是由于我喜好VisualStudioIDE”——我团体以为VisualStudio是最有临盆力的开辟工具。可是,PHP的有不错的选择。我利用ZendStudio,PHPEd,Komodo,DelphiforPHP,这些都很不错。我厌恶Eclipse,不外Zend也在这方面为PHP开辟做了很多扩大。
应当对照ASP的功能——不必了,感谢。新式的ASP与今朝的PHP与ASP.NET差异太年夜了。做这类对照,仿佛是在倡议利用ASP开辟新项目,我激烈不倡议你这么做。
32位与64位体系对照
32位与64位体系之间的对照——这些测试的目标并非为了表现64位体系上的功能差异。从此的测试我会增添64位的场景。
“PHP丑恶至极”——哦,我分歧意。新式ASP要丑恶多了。你能够写出十分可骇而丑恶的PHP代码,也能够写出丑恶而可骇的C#或VB代码。一样,你也能够写出文雅的C++款式的PHP。这完整只和开辟职员的妙技有关。
应当利用Windows上的Apache举行测试——Apache是Linux上的服务器,不外我以为假如你在Windows上不利用IIS7则会丧失太多太多器材了。
“有举措在Win2K8中,在不丧失平安性的条件下加速文件复制功能吗?”——仿佛不可。我以为这触及到Windows服务器上的ACL体系。我今后大概会测试经由过程数据流读取文件的功能,有些器材的功能大概会有所改良。不外,Web使用程序一样平常不会编程来复制大批文件。
“PHP一向是,也永久只是一个半专业性子的情况”——这类说法狗屁欠亨。PHP平台上有很多专业的,高质量的使用程序,也有良多我十分尊崇的开辟职员。是不是专业是开辟职员的成绩,不是PHP或ASP.NET的成绩。
“我以为对照没有opcode缓存的PHP很不公允,.NET是编译实行的,而PHP必要每次都注释并‘编译’页面”——我批准这个测试大概不敷完全,可是我不认同这个逻辑。我测试PHP的体例,就和下载安装的体例一样。我的假造主机也没有安装op-code缓存。而现实上,ASP.NET自带这个特征也其实不意味着测试是不公允的,这是由于PHP短少这个特征——不外这个请求很公道,我正在筹办新的测试。
“说PHP不是一个‘专业的’言语很没事理,由于几近一切最年夜的站点都是用PHP构建的”——这类说法是没事理,不外说那些站点“几近都是”用PHP构建的也是毛病的。有些是,有些不是。
假如你们看到这一数据以后对ASP.NET信念倍增我天然很乐意。假如我不以为.NET是开辟Web使用程序来讲是一种更好的选择——最少不属于别的平台,那末我也不会在微软事情了。
可是……假如你由于这些数据而无视PHP,也是毛病且稚嫩的举动。
从纯手艺角度来讲,我以为.NET远比PHP壮大,但这其实不意味着PHP不敷壮大。在我看来,PHP的力气表现在浩瀚的使用程序和可用的框架。
约莫一周今后,Joe公然了第二次测试的了局。与前一个测试比拟,第二个测试次要有以下两个改动:
为Linux和Windows上安装了op-code缓存,偏重新运转了年夜部分测试。
因为一些依附项的成绩,PHP5.3+APC的测试平台酿成了Debain5操纵体系。
关于第二次测试及其了局,Joe注释到:
从了局上看,Ubuntu和Debian上运转PHP的功能差异能够疏忽不计。部分条目标功能有些微小的改善,有些则有25%的进步,可是整体来讲其效果比我设想中要来得低。
利用APC以后,一些条目标运转反而变慢了,不外我以为这只是呆板所酿成的偏差。请注重,表格中显现的不是第一次的了局,都是经由两次革新,确认是在缓存射中时失掉的了局。
我以为如今的测试十分公允。
空的轮回测试和空的函数实行十分主要,由于这反应了言语或平台的基本损耗。这是处页面传输等功能开支外的功能损耗,是一个主要的思索方面。
我的一些PHP伴侣也承认这个测试的正确性,不外给出了十分有看法的增补:
ASP.NET在功能上的抢先不会对我有甚么影响。PHP是我的最爱,我的使用程序已充足快了。没错,ASP.NET在基本功能上是对照快,可是我的使用程序能够经由过程优异的页面完成和JavaScript理论把这部分功能补返来。
别的,依据上一次实行的了局,在Windows平台上运转PHP时,在MySQL和文件的会见上有一些功能成绩,微软很多团队都向我猎取了相干信息。但愿这些数据都够变化为实在的改善。
Joe暗示,他将搜集人人以为更公允,更成心义的测试场景。以下是他所企图的测试项目:
* 实践页面测试:轮回,冷暑挪用和工具操纵是一类测试,不外页面的全体出现则是另外一种成心义的测试。
* 负载测试:哪个情况能够同时处置更大批的哀求。
* 在负载测试中,哪一方的功能会下落地更快。
* 在各类情形下,64位平台的体现怎样。
国际也已经举行过PHP在Linux和Windows平台上的功能测试。微软在WordCampChina2009年夜会上公然了之前与康盛创想互助举行的功能评价了局:在WindowsServer2008+IIS上运转PHP,从均匀响应工夫,每秒处置的哀求数,和数据吞吐量等多便利均优于Linux+Apache的托管体例。
那做企业软件是不是最好用J2EE? |
|