一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

從ASP.NET的PHP執(zhí)行速度比較談起

  上星期我在InfoQ發(fā)表了一篇新聞,對(duì)Joe Stagner在博客上發(fā)表的三篇關(guān)于ASP.NETphp性能對(duì)比的文章進(jìn)行了總結(jié)。寫(xiě)新聞其實(shí)挺不爽的,因?yàn)椴荒軍A雜個(gè)人的看法,只能平鋪直敘陳述事實(shí)。當(dāng)然,如果像某些新聞那樣“換一種說(shuō)法”是可以騙過(guò)一些“不明真相的群眾”,但是這就有違道德了。因此,在客觀陳述完新聞內(nèi)容之后,我只能選擇把自己的感想、評(píng)論等內(nèi)容放在自己的博客上。

  Joe Stagner的背景挺特殊,它是php的老用戶,在ASP.NET出現(xiàn)之前就是php的重量級(jí)開(kāi)發(fā)人員了。后來(lái)不知哪一天開(kāi)始他加入了微軟,我們就可以在一些如介紹ASP.NET AJAX的文章、視頻中看到他。這次他又涉及了一個(gè)敏感話題:性能比較。要知道每次這種比較都會(huì)惹來(lái)一陣爭(zhēng)論……我不想用“口水戰(zhàn)”來(lái)形容,我認(rèn)為它和“爭(zhēng)論”的性質(zhì)不同。Joe也承認(rèn),每次他說(shuō)php好話就會(huì)被微軟的同事指責(zé),而說(shuō).NET好話就要被php陣營(yíng)說(shuō)是微軟的托。

  我深信優(yōu)秀的技術(shù)人員都是有信仰的,都有技術(shù)傾向性。因此如Joe夾在中間的人的確比較尷尬。但是我認(rèn)為,有信仰,和“客觀”是不沖突的。信仰涉及到傾向性,而客觀則意味著有傾向性之后的辦事方式。

  至于比較結(jié)果,您可以關(guān)注一下新聞內(nèi)容,總體來(lái)說(shuō),ASP.NET從純粹的執(zhí)行效率上來(lái)說(shuō)是大幅領(lǐng)先于php的。這并不令人驚訝,一個(gè)是編譯為機(jī)器碼的執(zhí)行方式,一個(gè)是解析執(zhí)行(即時(shí)緩存了op-code也并不是機(jī)器碼),性能自然天差地遠(yuǎn)。

  Joe也知道會(huì)引發(fā)爭(zhēng)論,因此他在文章后面寫(xiě)道:

我知道某些人會(huì)被這個(gè)測(cè)試結(jié)果激怒,歡迎發(fā)表評(píng)論及反對(duì)意見(jiàn),但是如果你無(wú)法保持禮貌的話,我會(huì)刪除你的評(píng)論并阻止你的IP。

如果你不喜歡,并拒絕接受這個(gè)結(jié)果——那么你也來(lái)測(cè)試一下。用數(shù)據(jù)支持你的觀點(diǎn),使用我的代碼或你自己的,然后圍繞事實(shí)再來(lái)爭(zhēng)論

  自然,Joe也給出了測(cè)試代碼及測(cè)試環(huán)境的描述。

  文章的評(píng)論自然是很有看頭的,說(shuō)法很多,有許多人說(shuō)VS的IDE好,有人說(shuō)php永遠(yuǎn)只能寫(xiě)出半專業(yè)的程序。Joe一一進(jìn)行了回應(yīng),我個(gè)人認(rèn)為回應(yīng)的還是很客觀的,緊緊圍繞在測(cè)試的中心。他表示,雖然VS非常優(yōu)秀,但是php也有很好的IDE。而能否寫(xiě)出專業(yè)的程序是看人,而不是由php決定的,有丑陋的php程序,也能寫(xiě)出如C++一般工整美觀的代碼。

  從表面上看,ASP.NET在性能上勝出php一大截,作為ASP.NET的忠實(shí)用戶我應(yīng)該非常樂(lè)意接受這個(gè)“結(jié)果”。但是,我并不關(guān)注這個(gè),因?yàn)檫@種運(yùn)行時(shí)上純粹的速度對(duì)于一個(gè)Web應(yīng)用程序來(lái)說(shuō)實(shí)在微不足道。例如Joe的第三篇文章里列舉出的php高手的應(yīng)對(duì)方式:

  • ASP.NET在性能上的領(lǐng)先不會(huì)對(duì)我有什么影響。php是我的最愛(ài),我的應(yīng)用程序已經(jīng)足夠快了。
  • 沒(méi)錯(cuò),ASP.NET在基礎(chǔ)性能上是比較快,但是我的應(yīng)用程序可以通過(guò)優(yōu)秀的頁(yè)面實(shí)現(xiàn)和JavaScript實(shí)踐把這部分性能補(bǔ)回來(lái)。
  • 我在進(jìn)行Drupal開(kāi)發(fā),我對(duì)php最熟悉,因此我寧愿多花一些硬件來(lái)保持更好的開(kāi)發(fā)效率。

  以及InfoQ上的一條評(píng)論:

在WEB上便捷的開(kāi)發(fā),與各種系統(tǒng)之間靈活的搭配,像膠水一樣將各種不同的物件拼裝起來(lái)呈現(xiàn)給Web,(Python在這方面也做得非常棒)。這才是php能有今天的本質(zhì)原因。

  之前我批評(píng)Java是一種不思進(jìn)取的低生產(chǎn)力語(yǔ)言,回應(yīng)很多。其中也有類似的說(shuō)法,如說(shuō)Java平臺(tái)開(kāi)源多,項(xiàng)目多等等。沒(méi)錯(cuò),這我在對(duì)Java語(yǔ)言發(fā)起非難之前就已經(jīng)反復(fù)強(qiáng)調(diào)了。我同意這個(gè)觀點(diǎn)——但是,如果是這樣的“結(jié)論”肯定是站不住腳的:“因?yàn)?a href=/itjie/Javajishu/ target=_blank class=infotextkey>Java平臺(tái)開(kāi)源多,項(xiàng)目多,因此Java語(yǔ)言并不是不思進(jìn)取的語(yǔ)言”。這就好比有人說(shuō)“他熟悉phpphp的項(xiàng)目多,因此php的性能比ASP.NET快”一樣,把兩種東西混淆起來(lái)了。

  奇怪的是,Joe沒(méi)有讓人不要用php,我也沒(méi)有讓人不要用Java平臺(tái)(不過(guò)我現(xiàn)在一直建議別人用Scala代替Java語(yǔ)言)。

  許多國(guó)內(nèi)技術(shù)人員總有這樣的“毛病”,見(jiàn)不得自己使用東西有一點(diǎn)點(diǎn)“瑕疵”。既然我是Java平臺(tái)開(kāi)發(fā)人員,我使用Java語(yǔ)言,我就見(jiàn)不得別人說(shuō)Java語(yǔ)言一丁點(diǎn)不好。其實(shí)做技術(shù)就是做權(quán)衡,“沒(méi)有銀彈”就意味著沒(méi)有技術(shù)是完美無(wú)缺的,我們選擇技術(shù)是在優(yōu)勢(shì)和劣勢(shì)之間進(jìn)行平衡后的結(jié)果。只有承認(rèn)了缺點(diǎn),認(rèn)識(shí)到缺點(diǎn),才能吸取其他技術(shù)的長(zhǎng)處,來(lái)作出更好的權(quán)衡。

  因此我一直認(rèn)可的是,SQL Server的確貴,數(shù)據(jù)存儲(chǔ)就用*nix平臺(tái)上的吧。選擇多,性能多。

  當(dāng)然,這不是國(guó)內(nèi)技術(shù)人員的毛病,這是一個(gè)廣泛的問(wèn)題。很巧,李笑來(lái)老師昨天寫(xiě)了一篇博文,似乎剛好談?wù)摿诉@方面的問(wèn)題。文章很短,就全文摘錄了:

無(wú)論是誰(shuí),一生中總是在不停地“選擇”(姑且不論所謂選擇之中有多少是真實(shí)的有多少是幻象而已)。每個(gè)人都在盡量在眾多選項(xiàng)中選擇“最好”的那個(gè)。一生有2n選擇,可最終只有一條路屬于自己

走在自己正在走的那條路上,人們對(duì)其它可能性可以抱有兩種態(tài)度:“好奇”——通常因?qū)ΜF(xiàn)狀不滿而表現(xiàn)為“后悔”;或者“自負(fù)”——更多人最終選擇的是這個(gè),因?yàn)榱硗庖粋€(gè)選擇所表現(xiàn)出來(lái)的“后悔”通常被認(rèn)為是負(fù)面情緒,而與之相反的“無(wú)怨無(wú)悔”好像更加理直氣壯更加毅然決然(盡管并不總是正確)。

時(shí)間長(zhǎng)了,人們就不知不覺(jué)把“我一直在盡量選最好的”和“我選的就是好的”等同起來(lái),進(jìn)而外演為“與我選的不一樣的選擇就是不好的”,再進(jìn)一步演化為“既然選的是‘不好’的,那他要么是笨,要么是‘壞’,反正跟我不一樣!”

根源就在這里了。以自我為中心也好,過(guò)度自戀也好,沙文主義、大男子主義、狹隘民族主義也罷,都大抵上如此。

  還有一個(gè)問(wèn)題,之前也多次談過(guò),國(guó)內(nèi)技術(shù)人員太容易輕視一個(gè)問(wèn)題。例如在這篇新聞中不止一個(gè)用戶覺(jué)得這個(gè)測(cè)試很無(wú)聊。為什么“無(wú)聊”?可能是覺(jué)得“這點(diǎn)性能不是關(guān)鍵”因此這個(gè)實(shí)驗(yàn)沒(méi)有意義吧。我想說(shuō),其實(shí)最無(wú)聊的不是做實(shí)驗(yàn)的人,而是糾結(jié)與實(shí)驗(yàn)結(jié)果的人。或者說(shuō),無(wú)聊的不是實(shí)驗(yàn),而是糾結(jié)于實(shí)驗(yàn)結(jié)果。與此相比,我反而強(qiáng)烈懷疑,輕易認(rèn)為這個(gè)實(shí)驗(yàn)無(wú)聊的人,倒是真正只關(guān)注與“誰(shuí)快誰(shuí)慢”,而不關(guān)注過(guò)程和結(jié)果所表達(dá)出的內(nèi)容。不去推測(cè),不去思考。那么以后到了需要決策的時(shí)候,決策所需的依據(jù)從哪里來(lái)呢?應(yīng)該都已經(jīng)被“無(wú)聊”走了吧。

  Joe的這幾篇文章,以及我總結(jié)的時(shí)候,都刻意的詳細(xì)列出了測(cè)試的過(guò)程和“運(yùn)行性能”以外的結(jié)果。除了保持公正,客觀之外,因?yàn)樗鼈円彩侵匾臄?shù)據(jù)。例如,我現(xiàn)在知道了在Windows上訪問(wèn)MySQL的驅(qū)動(dòng)程序?qū)崿F(xiàn)很差,而不同平臺(tái)上訪問(wèn)PostgreSQL性能則相差無(wú)幾。我知道,在Windows上進(jìn)行大文件復(fù)制,受ACL影響性能較差。而如果關(guān)注Windows上運(yùn)行php情況的朋友們則可以獲得更多信息。

  我不知道是不是國(guó)內(nèi)技術(shù)人員的普遍水平較高,總是容易感覺(jué)國(guó)外的一些討論無(wú)聊。例如有人討論Java的原生類型時(shí)有人回復(fù)“是不是經(jīng)濟(jì)危機(jī)老美太閑了”。而上次有人和別人討論ppt的縮寫(xiě)是怎么來(lái)的,就給軟件最初的編寫(xiě)者寫(xiě)了一封英文信求證,老外非常詳細(xì)解答了這個(gè)問(wèn)題,還糾正了簡(jiǎn)稱和縮寫(xiě)的差異。作者把信貼出來(lái)寫(xiě)了篇blog,原站上評(píng)論都是贊同。轉(zhuǎn)帖評(píng)論齊刷刷都是罵該作者閑的蛋疼。

  我不知道這算是學(xué)術(shù)態(tài)度的問(wèn)題,還是只能說(shuō)“對(duì)工作沒(méi)有熱情,對(duì)生活沒(méi)有好奇”?在《原生類型》那片文章里,有朋友回復(fù)的好:

西方人這種看似無(wú)聊的爭(zhēng)論才讓他們達(dá)到了今天的高度,爭(zhēng)論是不是一切量都可以用有理數(shù)表示,爭(zhēng)論什么是運(yùn)動(dòng),爭(zhēng)論地球是宇宙的中心還是太陽(yáng)是宇宙的中心,爭(zhēng)論撒旦是如何誕生的,爭(zhēng)論行星是如何運(yùn)行。而我們很只注重實(shí)用,所以無(wú)法達(dá)到西方在理論上的高度,永遠(yuǎn)只能等別人爭(zhēng)論完了,出結(jié)果了。我們拿來(lái)用用,僅此而已。

  不過(guò),嫌外國(guó)人無(wú)聊的人,往往也是嫌國(guó)內(nèi)沒(méi)有技術(shù)含量的人。是不是很奇怪?

  同樣,Erlang之父Joe Armstrong寫(xiě)Why OO SucksStephan Schmidt寫(xiě)Clojure vs Scala),Java平臺(tái)語(yǔ)言Groovy創(chuàng)始人James Strachan認(rèn)為ScalaJava未來(lái)的替代品,他和JRuby的核心維護(hù)者James Gosling、Charles Nutter對(duì)Scala vs. Java的話題討論的不亦樂(lè)乎。這些都是在批評(píng)一個(gè)事物,或是在進(jìn)行“語(yǔ)言比較”這一“無(wú)聊”的話題。那么他們是不是也都閑得慌了?

  我在想,如果把他們的文章翻譯過(guò)來(lái),匿個(gè)名,或者讓吉日嘎拉這樣的“眾矢之的”來(lái)發(fā)表,會(huì)不會(huì)被人指責(zé)不懂OO,不懂Java?您別說(shuō),我還真見(jiàn)過(guò)這樣的事情,誰(shuí)讓國(guó)內(nèi)翻譯轉(zhuǎn)載常常不留出處呢?

  其實(shí)這又是個(gè)邏輯問(wèn)題了,這近似于《常見(jiàn)邏輯謬誤》一文提到“人身攻擊及‘你也一樣’”,也就是指并不關(guān)心問(wèn)題本身,而是把論據(jù)轉(zhuǎn)移到“對(duì)方”身上。其實(shí),一個(gè)命題是否正確,和它是由哪個(gè)人提出的有聯(lián)系嗎?我們一直指責(zé)某些人“屁股決定腦袋”,可別人真的用腦袋說(shuō)話了,我們每次還是盯著別人的屁股看。

  如果用博客園里常見(jiàn)的現(xiàn)象就是,如果一個(gè)人在說(shuō)比較微軟技術(shù)和其他技術(shù),而“恰好”那人又在說(shuō)微軟好話,又“恰好”那人是MVP。那么好,肯定會(huì)出現(xiàn)許多人說(shuō)MVP是微軟的托。我承認(rèn),有些MVP因?yàn)閭€(gè)人利益而會(huì)作微軟的托。例如您現(xiàn)在在Google上搜索“MVP TFS”的第一條便是一則不光彩的事件。Ben Scheirman在一個(gè)TFS的MVP博客里回復(fù)說(shuō)“即使有錢(qián),也會(huì)用免費(fèi)工具,因?yàn)楦糜?rdquo;,結(jié)果這條回復(fù)被刪除了。對(duì)方私下寫(xiě)信說(shuō),這是因?yàn)樗谟肨FS咨詢賺錢(qián)。

  這不正說(shuō)明MVP是托嗎?不過(guò)這顯然是MVP的個(gè)人行為,而不是MVP的群體做法。原因很簡(jiǎn)單,因?yàn)锽en自己也是個(gè)MVP,所以現(xiàn)在是“一個(gè)MVP說(shuō)微軟產(chǎn)品不好,其回復(fù)被另一個(gè)MVP刪除了”。那么您說(shuō),MVP是否是微軟的托?還有,您說(shuō)我是不是微軟的托?

  同樣道理,Oracle認(rèn)證工程師說(shuō)Oracle好,Rails愛(ài)好者說(shuō)Rails好,是不是都是托呢?開(kāi)源愛(ài)好者是不是開(kāi)源的托?我還是認(rèn)為,優(yōu)秀的技術(shù)人員一定是有信仰的,也是有傾向性的。但是,他們的說(shuō)得東西本身是否正確,并不以他們的傾向性而轉(zhuǎn)移,那些東西的正確性是客觀確定的。

  我認(rèn)為,如果社區(qū)要蓬勃發(fā)展,就要接受這種傾向性,并盡力保持客觀的頭腦,經(jīng)常“換一種方式想問(wèn)題”。我們要的不是和諧,而是爭(zhēng)論,對(duì)客觀事物的爭(zhēng)論,而不是對(duì)個(gè)人的人身攻擊。我認(rèn)為,這方面我們做的還很不夠,要繼續(xù)努力。

NET技術(shù)從ASP.NET的PHP執(zhí)行速度比較談起,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人中文字幕一区二区三区 | 国产精品综合一区二区 | 日本一区二区视频在线观看 | 东北普通话清晰对白 | 日本高清www视频在线观看 | 久久亚洲欧美日本精品品 | 天天爱天天爽 | 国产91色拍| 手机在线一区二区三区 | 激情视频在线 | 天天做天天添天天谢 | 99pao在线视频成精品 | 亚洲视频一区在线播放 | 亚洲精品高清国产一久久 | 最色成人网 | 久久免费视频6 | 精品久久久久久乐 | 亚洲怡红院在线观看 | 5g影院天天5g爽天天看 | 狠狠色狠狠色综合网 | 色久视频| 国产一级特黄的片子 | 久久精品8| 91在线品视觉盛宴免费 | 欧美大吊视频 | 成人免费一区二区三区 | 黄色在线观看网站 | 新版天堂资源中文8在线 | 久久一区二区精品 | 国产成人精品免费午夜 | jizz日韩| 四虎现在的网址入口 | 亚洲狠狠97婷婷综合久久久久 | 国产激爽大片高清在线观看 | 欧美不卡视频在线观看 | 国产精品视_精品国产免费 国产精品视频1区 | 欧美第一页 | www.加勒比.com | 国产精品视频播放 | 欧美大逼逼| 国产高清国产专区国产精品 |