西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁業(yè)內(nèi)動(dòng)態(tài) IT人生 → 對(duì)于ASP.NET和PHP的性能對(duì)比

對(duì)于ASP.NET和PHP的性能對(duì)比

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2010/8/13 16:26:47字體大。A-A+

作者:佚名點(diǎn)擊:195次評(píng)論:0次標(biāo)簽: ASP.NET PHP

  • 類型:源碼相關(guān)大。23KB語言:中文 評(píng)分:5.0
  • 標(biāo)簽:
立即下載


--------------------------------------------------------------------------------


經(jīng)過一些篩選,只選擇一些代表性的看法進(jìn)行翻譯, 對(duì)于英文不是太好的朋友比較有用, 如果有翻譯和知識(shí)點(diǎn)上的錯(cuò)誤,請(qǐng)指出。

首先, 排除偏激和未經(jīng)測試的看法, 讓我們來看看interscape和ttuttle怎么說

interscape(MVP) :

PHP是一個(gè)腳本語言, 而ASP.NET是一個(gè)面向?qū)ο螅?編譯性的語言。你不能讓PHP在一個(gè)WINDOWS程序中運(yùn)行, 但是你可以拷貝ASP.NET的代碼并把它放到WINFORM程序里面, 而不用太大的修改。 但是如果你要談及所有情況下的性能, 也許PHP會(huì)好一些, 不過我會(huì)為WEB開發(fā)選擇OOP(面向?qū)ο缶幊蹋┒皇莝tep-thru(順序編程)腳本編程方式。

ttuttle:

我不想去做任何專橫武斷(outrageous)的聲明, 但是讓我們來看一下一些事實(shí):

PHP已經(jīng)被證明比ASP3.0稍微快一些

ASP.NET比ASP3.0快3~5倍(一種類似于PHP的解析性腳本語言)(注:ttuttle這句出自于http://www.asp.net/whitepaper/whyaspnet.aspx)

ASP.NET可以存放在緩存(Output Caching)中, 當(dāng)頁面第一次被訪問和編譯后, 它可以從緩存中得到。 沒有任何頁面處理器會(huì)比緩存更快。

在默認(rèn)安裝下,ASP.NET是編譯性語言, 而PHP和ASP3.0則是解釋性語言。

面對(duì)這兩種孑然不同的解釋, 我再來看看ScottGu和 wysiwyg 還有 Xanderno怎么說

ScottGu(http://www.asp.net的版主):

ASP.NET是編譯性質(zhì)而不是解釋性質(zhì)的。 所以語句可以被轉(zhuǎn)換為更快的執(zhí)行時(shí)間。

而PHP方面也有ZEND在出售其收費(fèi)的編譯器ADD-ON.

然而, 我們已經(jīng)看到Nile benchmark(注:一種測試的性能基準(zhǔn),可以參看其白皮書http://www.gotdotnet.com/team/compare/Nile %20Benchmark%20Results.doc)中, ASP.NET和SQL這種組合的速度比PHP和MYSQL快 2~3倍, 且近乎5倍快于PHP和ORACLE的運(yùn)行效率(即便ZEND編譯器和緩存器已經(jīng)安裝)

wysiwyg:

雖然這個(gè)主題是ASP.NET VS PHP, 但是我來說一下我測試的事實(shí)卻是 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)

我很希望自己的結(jié)果是ASP.NET快于ASP, 但是確相反, 誰能告訴我為什么??

(注: wysiwyg認(rèn)為他自己做是測試,但是沒有說明計(jì)算機(jī)和操作系統(tǒng)和測試環(huán)境的詳細(xì)情況,也沒說明是否屬于哪一級(jí)別的壓力測試)

Xanderno:

在我的不完善的測試中, 采用ACT 作為一種方法。 在一臺(tái)配置低機(jī)器上面, 用ASP通過

一個(gè)SQL SERVER上的數(shù)據(jù)庫獲取數(shù)據(jù), 每秒種我可以獲得10~15頁數(shù)據(jù) 。 同樣的函數(shù), 用ASP.NET, 每秒種我卻可以獲得30~40頁數(shù)據(jù), 使用輸出緩存(output caching)后,

它上升為120頁/秒。

微軟提供一系列壓力測試工具。 VS.NET企業(yè)版便有ACT, 如果你沒有VS企業(yè)版, WACT也是一種可行的方法.WAST website -- http://webtool.rte.microsoft.com/

============================

從以上三人的看法, 也許大家已經(jīng)得出較為正確的答案。 然而這些并不是第一次在ASP.NET和PHP運(yùn)行效率的討論。其他討論, 還可以參看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)。

當(dāng)然你有時(shí)間, 還可以看看由Owendo Technology做的Web Application Server

Panorama(Web應(yīng)用程序服務(wù)器全景)報(bào)告

 

此外,還有人問了這樣一個(gè)問題"VB.NET和C哪個(gè)更快?"

Daniel P. 這樣回答: 他們并沒有區(qū)別, VB.NET和C都是轉(zhuǎn)換成 IL-Code(中間語言代碼)---用來編譯主程序的。

(注: 這種說法不一定正確, 兩者的編譯器是不一樣的, 而且這個(gè)結(jié)論也沒有經(jīng)過嚴(yán)格的壓力測試)

最后, 也許大家總是覺得程序員之間這種討論看起來很funny, 很多人總是帶有主觀性進(jìn)行討論, 連一些編程大師級(jí)的老外也像小孩子一樣在爭論。 但是沒有自己所愛的語言, 沒有這種狂熱又怎會(huì)有技術(shù)的進(jìn)步。
 

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)