Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ASP.NET和PHP性能对比整理和翻译(原创)

5 views
Skip to first unread message

阿冰

unread,
Dec 26, 2003, 3:44:02 PM12/26/03
to
原出处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, 但是确相反, 谁能告诉我为什么??

(阿冰语: 此人认为他自己做是测试,但是没有说明计算机和操作系统和测试环境的详细
情况,
也没说明是否属于哪一级别的压力测试)
------------
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(中间语言代
码)---用来编译主程序的.

最后, 也许大家总是觉得程序员之间这种讨论看起来很搞笑, 很多人总是带有主观性进
行讨论, 连一些编程大师级的老外也像小孩子
一样在争论. 但是没有自己所爱的语言, 没有这种狂热又怎会有技术的进步.
(呵呵,在下以前就是做php的通用模块开发, 类www.xoops.org那种, 现在改为.net, 不
过还是很喜欢php这种轻松不严谨的脚本)


--
=====================
找了一个月工作,阿冰终于回归了^_^|||

劣者是SMIS.NET项目组成员,
也是微软中文新闻组ASP.NET的版主,
高手请到版上指教,新手请来版上聚聚,
大家一起提高ASP.NET版人气.(microsoft.public.cn.dotnet.framework.aspnet)

狠下心,把华为给拒了
等不到网易,去了深圳APPENON,以后回厦门只要坐半天的车
=============================


Halley

unread,
Dec 26, 2003, 9:27:13 PM12/26/03
to
php的简单和快速(程序编制方面)是其他语言无法比的,而5.0对“对象”的诠释也更
彻底了
"阿冰" <webm...@coolpili.com> 写入邮件
news:%236WHeJ$yDHA...@TK2MSFTNGP09.phx.gbl...
> 附上一张NILE .NET VS J2EE BENCHMARK

>
> --
> =====================
> 找了一个月工作,阿冰终于回归了^_^|||
>
> 劣者是SMIS.NET项目组成员,
> 也是微软中文新闻组ASP.NET的版主,
> 高手请到版上指教,新手请来版上聚聚,
> 大家一起提高ASP.NET版人气.(microsoft.public.cn.dotnet.framework.aspnet)
>
> 狠下心,把华为给拒了
> 等不到网易,去了深圳APPENON,以后回厦门只要坐半天的车
> =============================
> "阿冰" <webm...@coolpili.com> 写入消息新闻
> :#UeFIF$yDHA...@tk2msftngp13.phx.gbl...
> > 原出处http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=733
> >
> > 经过一些筛选,只选择一些代表性的看法和语句翻译, 翻译上用侯捷推荐的翻译方
法.
> > 对于英文不是太好的朋友比较有用,如果有翻译和知识点上的错误,请指出! :)
> >
>
-------------------------------------------------------------------------

秋水艳阳天

unread,
Dec 26, 2003, 10:31:28 PM12/26/03
to
"此外,还有人问了这样一个问题"VB.NET和C#哪个更快?"

Daniel P. 这样回答: 他们并没有区别, VB.NET和C#都是转换成 IL-Code(中间语言代
码)---用来编译主程序的."
 
It is not exactly correct. In fact, they have different compilers. That is to say, same code of vb.net and C# may be compiled to different IL-Code. So their effieiency is not exactly same.

--
宠辱不惊,看花开花落
去留无意,任云卷云舒
   

ceocio(MS MVP)(西南交大|刘巍)

unread,
Dec 27, 2003, 2:42:58 AM12/27/03
to
感谢楼主,英语不好的同志们有福了!

--
-------------------------
微软最有价值专家
.Net/IIS/ASP/Windows
-------------------------
"阿冰" <webm...@coolpili.com> 写入消息
news:#UeFIF$yDHA...@tk2msftngp13.phx.gbl...

阿冰

unread,
Dec 27, 2003, 5:40:53 AM12/27/03
to
其实PHP本来就有面向对象的诠释, 只是多态性和虚构方面一直没有较好的实现

--
=====================
找了一个月工作,阿冰终于回归了^_^|||

劣者是SMIS.NET项目组成员,
也是微软中文新闻组ASP.NET的版主,
高手请到版上指教,新手请来版上聚聚,
大家一起提高ASP.NET版人气.(microsoft.public.cn.dotnet.framework.aspnet)

狠下心,把华为给拒了
等不到网易,去了深圳APPENON,以后回厦门只要坐半天的车
=============================
"Halley" <zi...@tom.com> 写入消息新闻
:#Fb7oDCz...@TK2MSFTNGP09.phx.gbl...

阿冰

unread,
Dec 27, 2003, 5:43:00 AM12/27/03
to
我也是这么认为, 不过没经过压力测试, 我也不好作出评价, 不过还是觉得C#会快一些

--
=====================
找了一个月工作,阿冰终于回归了^_^|||

劣者是SMIS.NET项目组成员,
也是微软中文新闻组ASP.NET的版主,
高手请到版上指教,新手请来版上聚聚,
大家一起提高ASP.NET版人气.(microsoft.public.cn.dotnet.framework.aspnet)

狠下心,把华为给拒了
等不到网易,去了深圳APPENON,以后回厦门只要坐半天的车
=============================
"秋水艳阳天" <Artilkil...@hotmail.com> 写入消息新闻
:#9EnenCz...@tk2msftngp13.phx.gbl...

hzy

unread,
Dec 27, 2003, 7:52:20 AM12/27/03
to
辛苦了


楚狐

unread,
Dec 28, 2003, 4:07:43 AM12/28/03
to
嗯,不错!我只会php不会asp,但是现在再学习asp.net的。

ylcomrade

unread,
Dec 28, 2003, 8:41:43 PM12/28/03
to
我觉得这种可比性太小了,面对的用户不一样
"阿冰" <webm...@coolpili.com> 写入邮件
news:%23UeFIF$yDHA...@tk2msftngp13.phx.gbl...
> Daniel P. 这样回答: 他们并没有区别, VB.NET和C#都是转换成 IL-Code(中间语言

> 码)---用来编译主程序的.
>
> 最后, 也许大家总是觉得程序员之间这种讨论看起来很搞笑, 很多人总是带有主观性

hubo

unread,
Dec 29, 2003, 5:06:20 AM12/29/03
to
事实上C#和VB.NET从语句结构上非常象,而且,它们共用同样的函数库。所以对相同的问题产生的中间代码也是一样的。当然,不排除某个人因为熟悉某一语言而写出更精练的程序,但原则上来讲,这种精练也可以移植到另一个语言。
"秋水艳阳天" <Artilkil...@hotmail.com> schrieb im Newsbeitrag news:#9EnenCz...@tk2msftngp13.phx.gbl...
0 new messages