近来面临着asp架构的网站要升级到asp.net还是php的问题,上网找了一下,摘抄如下
阿冰
原出处http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=733
经过一些筛选,只选择一些代表性的看法进行翻译, 对于英文不是太好的朋友比较有用, 如果有翻译和知识点上的错误,请指出.
-------------------------------------------------------
首先, 排除偏激和未经测试的看法, 让我们来看看interscape和ttuttle怎么说
interscape(MVP) :
PHP是一个脚本语言, 而ASP.NET是一个面向对象, 编译性的语言.你不能让PHP在一个
WINDOWS程序中运行, 但是你可以拷贝ASP.NET的代码并把它放到WINFORM程序里面, 而不用太大的修改. 但是如果你要谈及所有情况下的性能, 也许PHP会好一些, 不过我会为WEB开发选择OOP(面向对象编程)而不是step-thru(顺序编程)脚本编程方式.
ttuttle:
我不想去做任何专横武断(outrageous)的声明, 但是让我们来看一下一些事实
--PHP已经被证明比ASP3.0稍微快一些
--ASP.NET比ASP3.0快3~5倍(一种类似于PHP的解析性脚本语言)(注:ttuttle这句出自于
http://www.asp.net/whitepaper/whyaspnet.aspx)
--ASP.NET可以存放在缓存(Output Caching)中, 当页面第一次被访问和编译后, 它可
以从缓存中得到. 没有任何页面处理器会比缓存更快.
--在默认安装下,ASP.NET是编译性语言, 而PHP和ASP3.0则是解释性语言.
============================
面对这两种孑然不同的解释, 我再来看看ScottGu和 wysiwyg 还有 Xanderno怎么说
ScottGu(http://www.asp.net的版主):
ASP.NET是编译性质而不是解释性质的. 所以语句可以被转换为更快的执行时间.
而PHP方面也有ZEND在出售其收费的编译器ADD-ON.
然而, 我们已经看到Nile benchmark(注:一种测试的性能基准,可以参看其白皮书http://www.gotdotnet.com/team/compare/Nile%20Benchmark%20Results.doc)中, ASP.NET和SQL这种组合的速度比PHP和MYSQL快 2~3倍, 且近乎5倍快于PHP和ORACLE的运行效率(即便ZEND编译器和缓存器已经安装)
wysiwyg:
虽然这个主题是ASP.NET VS PHP, 但是我来说一下我测试的事实却是 ASP要稍快于
ASP.NET在ASP中, 这段代码用了2秒
...................
.....store order info in myRS.....
.....store customer info in myTable.....
....................
Do while not myRS.eof
myTable.open "select customername from tblCustomer where customerID=" &
myRS.fields("CustomerID", myConnection
myArray(0,ubound(myArray,2))=myRS.fields("Ordernumber"
myArray(1,Ubound(myArray,2))=myRS.fields("OrderDate"
myArray(2,Ubound(myArray,2))=myTable.fields("CustomerName"
myTable.close
myRS.movenext
loop
而ASP.NET用了40秒
trace.warn("open conn: " & now)
...................
.....store order info in datatable myDataTable.....
.....store customer info in datatable myCustomer.....
....................
myDataView=new DataView(myCustomer)
for each myRow in myDataTable.rows
myDataview.rowFilter="CustomerID=" & myRow("CustomerID"
myRow("CustomerName"=myDataview(0).row("Customername"
next
trace.warn("finish looping: " & now)
我很希望自己的结果是ASP.NET快于ASP, 但是确相反, 谁能告诉我为什么??
(注: wysiwyg认为他自己做是测试,但是没有说明计算机和操作系统和测试环境的详细
情况,也没说明是否属于哪一级别的压力测试)
------------
Xanderno:
在我的不完善的测试中, 采用ACT 作为一种方法. 在一台配置低机器上面, 用ASP通过
一个SQL SERVER上的数据库获取数据, 每秒种我可以获得10~15页数据 . 同样的函数, 用ASP.NET, 每秒种我却可以获得30~40页数据, 使用输出缓存(output caching)后,
它上升为120页/秒.
微软提供一系列压力测试工具. VS.NET企业版便有ACT, 如果你没有VS企业版, WACT也
是一种可行的方法.WAST website --http://webtool.rte.microsoft.com/
============================
从以上三人的看法, 也许大家已经得出较为正确的答案. 然而这些并不是第一次在ASP.NET和PHP运行效率的讨论.其他讨论, 还可以参看Debate - .NET V. PHP: Top 6 Reasons to Use NET(http://www.sitepoint.com/article/871 )
还有Top 10 .NET Myths Exposed(http://www.webmasterbase.com/article/870).
当然你有时间, 还可以看看由Owendo Technology做的Web Application Server
Panorama(Web应用程序服务器全景)报告
.这是一篇长达279页的报告
(http://e-serv.ebizq.net/shared/goldclub.jsp?owendo_1b.html ).
此外,还有人问了这样一个问题"VB.NET和C哪个更快?"
Daniel P. 这样回答: 他们并没有区别, VB.NET和C都是转换成 IL-Code(中间语言代码)---用来编译主程序的.
(注: 这种说法不一定正确, 两者的编译器是不一样的, 而且这个结论也没有经过严格的压力测试)
最后, 也许大家总是觉得程序员之间这种讨论看起来很funny, 很多人总是带有主观性进行讨论, 连一些编程大师级的老外也像小孩子一样在争论. 但是没有自己所爱的语言, 没有这种狂热又怎会有技术的进步.