欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

淺談微軟對(duì)PHP支持的改進(jìn) 及其它一些胡言亂語(yǔ)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:Fedora下Zend Studio 6.1.2 如何配置
Zend Studio是我們PHPer的一個(gè)非常的得力的工具,有了他往往能夠讓我們的工作事倍功半,今天就來記錄一下日常使用中非常有用的配置,來幫助更多的PHPer提高工作的效率。 1、配置服務(wù)器。 如果我們希望能夠快速的進(jìn)行調(diào)試,那么將Server和Zend整合在一起是必

這里有一份我覺得值得推薦給大家的幻燈片(下載鏈接)。這個(gè)幻燈片是不久前舉辦的WordCamp China 2009上微軟王超群的演講,演講主題是《熟悉的陌生人:微軟對(duì)PHP的新支持使WordPress在IIS7上雄起》。WordCamp是業(yè)界著名的PHP大會(huì),不過我這里推薦這個(gè)幻燈片不是為了為了推廣PHP,而是為了說明一些其他問題——當(dāng)然也有關(guān)于技術(shù)的有價(jià)值的內(nèi)容,這些您看了幻燈片和我的文章之后就會(huì)明白了。

對(duì)了,之前我已經(jīng)在InfoQ上寫了一篇新聞報(bào)道了這次事件。不過新聞歸新聞,目的是客觀說明情況而不是發(fā)表個(gè)人觀點(diǎn)。不過博客是個(gè)人地盤,我就打算在此暢所欲言了。

說到PHP,可能最容易讓人想起的就是著名的LAMP架構(gòu)(Linux + Apache + MySQL + PHP),而這全開放的平臺(tái)似乎和“封閉”的微軟技術(shù)距離比較遠(yuǎn)。不過微軟其實(shí)一直沒有放棄對(duì)PHP的“追求”,這次演講談的就是微軟在這方面的努力,以及取得的成果。我推薦這個(gè)幻燈片的主要原因之一,便是它寫的非常有水平,尤其是開頭一部分。在幻燈片一開始闡述了微軟對(duì)待開源的態(tài)度,希望和PHP的同志們拉近一些距離:

微軟對(duì)PHP支持的改進(jìn) 及其它一些胡言亂語(yǔ)圖片1 點(diǎn)擊查

嗯,就是這個(gè)觀點(diǎn):“微軟已經(jīng)不是當(dāng)年的微軟了”,它變了,變得怎么樣了呢?變得擁抱開源了:“開源的朋友們,不要看到“微軟”兩個(gè)字就心生厭惡,來,抱一個(gè)”。此外還引用了微軟首席軟件架構(gòu)師Ray Ozzie(如果我沒有認(rèn)錯(cuò)的話)的言論:

I think any company these days, any technology provider, even Microsoft, has to find the right balance of being a contributor and user of open source.

我認(rèn)為如今任何的公司及技術(shù)提供商,即使是微軟,也必須在開源的用戶和貢獻(xiàn)者中尋找一個(gè)合適的平衡點(diǎn)。

如果說Ray Ozzie可能還是在“王婆賣瓜”的話,那么Linux創(chuàng)建者、開源領(lǐng)袖Linus Torvald最近發(fā)表的話語(yǔ)應(yīng)該更有“參考價(jià)值”:

Oh, I’m a big believer in “technology over politics” 。.. There are “extremists” in the free software world, but that’s one major reason why I don’t call what I do “free software” any more. I don’t want to be associated with the people for whom it‟s about exclusion and hatred.

哦,我強(qiáng)烈認(rèn)為“技術(shù)高于政治”……自由軟件世界中有一些“極端主義者”,這也是我不再把我做的事情稱作“自由軟件”的主要原因。我不想和那些有排斥和憎惡心態(tài)的人產(chǎn)生關(guān)系。

這句話在有人反對(duì)“微軟為L(zhǎng)inux提交GPL代碼以提高Hyper-V的兼容性”時(shí)說的。Linus的意思再明確不過了:“技術(shù)就是就是技術(shù),不要有門戶之見”。順便一提,開源軟件(Open Source)和自由軟件(Free Software)是有很大區(qū)別的,不應(yīng)該混為一談。就我個(gè)人而言,我喜歡“開源”而不喜歡“自由”。我也不喜歡FSF覺得微軟永遠(yuǎn)是錯(cuò)的,不喜歡它搞某些東西的方式。不過肯定也有人喜歡,每個(gè)人都可以有自己的觀點(diǎn)。

好像有點(diǎn)說歪了。其實(shí)我也不知道微軟是不是只是“口頭”上討好開源界,但是我至少看出,微軟在想辦法證明自己——不管這個(gè)證明是不是有什么陷阱,有什么“不可告人的秘密”。在這方面,微軟至少在擺事實(shí),講道理,而不是隨口說“我就是擁抱開源”。我覺得,在中學(xué)里學(xué)寫議論文的時(shí)候,大家都應(yīng)該已經(jīng)知道就被告知論述的基本方式是“擺事實(shí)”,“講道理”。可是從平時(shí)討論的時(shí)候,我卻又覺得根本不是那么一回事情。說句得罪人的話,我覺得許多朋友缺乏必要的邏輯思維能力,會(huì)產(chǎn)生非常多的邏輯謬誤出來,但是卻都還堅(jiān)持自己是正確的。搞到最后,吵起架來彼彼皆是。而且往往在這個(gè)時(shí)候,無數(shù)匿名兄弟就跳出來發(fā)揮自己的聰明才智,各種諷刺挖苦謾罵的奇思妙語(yǔ)一個(gè)接一個(gè),令人宛如置身于天上“貓撲”,人間“天涯”。

其實(shí)堅(jiān)持自己是正確的不要緊,我也喜歡堅(jiān)持自己的意見,誰(shuí)不希望自己是正確的呢?但是要拿出理論根據(jù)來。其實(shí)作為技術(shù)從業(yè)人員,在許多問題上拿出根據(jù)來非常簡(jiǎn)單,例如寫一個(gè)程序便知泛型會(huì)不會(huì)降低性能。如果有些問題很難用數(shù)據(jù)說明問題(如數(shù)據(jù)獲取太難),那么至少也要找出一些別人的看法來支持自己的觀點(diǎn)。如果一味地“我認(rèn)為”,“我覺得”效果自然就大打折扣了。因此,我現(xiàn)在也經(jīng)常會(huì)有意地在文章中引用自己或其它的人的說法,至少可以讓自己有“底氣”一些,而不會(huì)感覺像是在扯淡。

我個(gè)人比較反感“光說不練”的人,我希望看到的不是“個(gè)人說法”,而是多個(gè)人的觀點(diǎn),或者是實(shí)際效果。例如前幾天有個(gè)匿名朋友在我博客上留言,偏要堅(jiān)持“靜態(tài)方法的調(diào)用會(huì)阻塞其它線程訪問”,我說“你試試看就知道了”,他也原樣復(fù)制一遍發(fā)回給我,針鋒相對(duì),不屈不饒。不知道他最后是否認(rèn)為他達(dá)到了論證“我在誤導(dǎo)初學(xué)者,為自己的書作廣告”的目的(我寫過書嗎?),至少我當(dāng)時(shí),既無奈,又窩火。

既然談到了技術(shù),那就再談遠(yuǎn)一些。這位認(rèn)為“靜態(tài)方法的調(diào)用會(huì)阻塞其它線程訪問”的朋友證明了他自己在某個(gè)方面學(xué)的有問題,而我前幾天發(fā)表的Double Check文章中,有許多朋友提出“怎么能lock在一個(gè)實(shí)例字段上”,“應(yīng)該lock在一個(gè)靜態(tài)字段才能產(chǎn)生效果”。換句話說,在這些朋友看來,一個(gè)實(shí)例方法是不會(huì)產(chǎn)生線程安全問題的——雖然ASP.NET MVC框架的DefaultControllerFactory就出現(xiàn)了這樣的毛病。這說明了在多線程開發(fā)方面,社區(qū)的整體意識(shí)還處于一個(gè)非常薄弱的程度——希望我這么說不會(huì)引起各位的不滿。

此外,昨天我意識(shí)到原來很多朋友用了很久的for卻無法寫出其等價(jià)的while寫法,又想起之前發(fā)現(xiàn)公司里的大部分同事不知道C#中使用@開頭的字符串表示法中如何包含一個(gè)雙引號(hào)。這應(yīng)該都是基礎(chǔ)中的基礎(chǔ),應(yīng)該人人知道,不是嗎?但事實(shí)就是讓我感到驚訝,許多朋友認(rèn)為自己不停地在學(xué)東西,ASP.NET MVC、Sliverlight,WPF一個(gè)一個(gè)地學(xué),但是最后最普通的東西卻不知道。結(jié)果工作找不好,薪水拿不高,最后一崩潰又開始叫嚷著這個(gè)行業(yè)沒前途。那么,有沒有想過換一種思路來學(xué)習(xí),例如,不要隨意輕視一些東西?

說到這里,我又想起其它一些事情,那就是我覺得如今社區(qū)里的“風(fēng)氣”出現(xiàn)了比較嚴(yán)重的問題。例如最近不止一次發(fā)生圍攻面試者的“群體性事件”,每次有人發(fā)表面試對(duì)方的題目之后,就有大量朋友上前表示不滿,對(duì)于簡(jiǎn)單的題目認(rèn)為太基礎(chǔ)了,考不出能力。對(duì)于困難的題目,就認(rèn)為它太難,鉆牛角尖,“又不是在招算法研究人員”。總之我發(fā)現(xiàn),似乎只要是遇到了回答不出的問題,都會(huì)遭到許多人的反對(duì)。似乎社區(qū)中許多朋友都認(rèn)為自己懷才不遇,“我來面試你,你也過不了”,都認(rèn)為“千里馬常有,而伯樂不常有”。有朋友問我,你面試別人時(shí)問些什么?我難以啟齒啊,因?yàn)槲覇柕耐彩悄切﹩栴},可是一下子就被鄙視了。其實(shí)沒有什么東西是簡(jiǎn)單的,有時(shí)候問問題并不是要得到結(jié)果,而是想從中看出一些細(xì)節(jié)來,例如一個(gè)人的思考方式和深度——我問某某和某某在寫法上的區(qū)別,不是在搞“茴香豆”,是由其他目的。不知您是否相信,我在面試時(shí)會(huì)讓對(duì)方談一下最喜歡的體育運(yùn)動(dòng)的規(guī)則?

最近似乎認(rèn)為我“無聊”的朋友也多了起來,認(rèn)為我寫的東西沒有什么實(shí)際意義,認(rèn)為我寫這些東西都是在“炫耀”。其實(shí),我的文章都是源于實(shí)際工作中的想法,我認(rèn)為對(duì)于實(shí)際工作是非常有幫助的。我不喜歡《XX編程三百例》式的文章,我認(rèn)為那是“魚”而不是“漁”。我不知道那些朋友希望我寫什么樣的文章才算有實(shí)際意義,但是我想最有意義的應(yīng)該是提高您的能力,而正是如此,我認(rèn)為您更應(yīng)該關(guān)注我在成長(zhǎng)過程中想到的這些問題。輕易鄙視這個(gè)鄙視那個(gè),就好像鄙視面試者那樣,這可不好。鄙視一個(gè)東西不要緊,但關(guān)鍵是,你思考了沒有?不要鄙視了半天,但是到最后也不知道發(fā)生了什么事,盲目地忙碌。

思考很重要,例如換一種思考方式就會(huì)得到不同凡響的結(jié)果。至少,這也是鍛煉邏輯的一種有效方式。想要驗(yàn)證自己想清楚了沒,我認(rèn)為最好的方式就是寫一篇文章。如果您想明白了,一定能把它說清楚。反過來說也一樣,如果您說不清楚,基本上就是因?yàn)槟鷽]有想明白。

說了好多,越扯越遠(yuǎn),喝口水,回來繼續(xù)吧。

PPT的正題自然是講述微軟在PHP平臺(tái)上做出的努力和取得的成果,其中列舉了之前與康盛創(chuàng)想合作進(jìn)行的性能評(píng)估結(jié)果,證明在Windows Server 2008 + IIS上運(yùn)行PHP,從平均相應(yīng)時(shí)間,每秒處理的請(qǐng)求數(shù),以及數(shù)據(jù)吞吐量等多方便均顯著優(yōu)于Linux + Apache的托管方式。當(dāng)然,這個(gè)結(jié)果也受到了一些質(zhì)疑,例如為什么在Apache中使用了mod_php而不是在大多數(shù)情況下性能更好的FastCGI。關(guān)于這點(diǎn)我沒有測(cè)試過,我不清楚,不過這并不要緊。我只想說:Windows的性能真的不差。

這也是PPT的截圖之一。從中可以看出IIS 7的吞吐量完全可以達(dá)到靜態(tài)文件請(qǐng)求20K,ASP.NET請(qǐng)求5K RPS(每秒請(qǐng)求數(shù))的吞吐量。這是100%的事實(shí),我可以擔(dān)保,因?yàn)樵谖?7年在微軟的時(shí)候,曾經(jīng)在自己工作用的普通 32位workstation上試驗(yàn)過,請(qǐng)求靜態(tài)文件輕松超過了10K。算上IIS 7的性能增強(qiáng),以及測(cè)試機(jī)的性能因素,得到上圖的結(jié)果完全沒有問題。至于ASP.NET動(dòng)態(tài)請(qǐng)求的性能,5000多完全就是一個(gè)沒有意義的數(shù)字了——我不是說它假,我只是說它沒有意義。因?yàn)閷?duì)于動(dòng)態(tài)請(qǐng)求來說,純粹比這種“空請(qǐng)求”的吞吐量,幾乎沒有任何實(shí)際參考價(jià)值。因?yàn)椋覀冇衅渌男阅芷款i,根本達(dá)不到IIS本身的性能限制。

對(duì)于普通Web應(yīng)用程序來說,如果在實(shí)現(xiàn)上沒有大的問題,幾乎不會(huì)讓W(xué)eb服務(wù)器(指IIS這種,不是指“機(jī)器”)成為性能瓶頸。性能瓶頸往往是在外部服務(wù)器調(diào)用,或者外部數(shù)據(jù)訪問上。例如耗時(shí)的SQL查詢一多,應(yīng)用程序整體性能自然就下來了。因此,業(yè)界最為熱烈的討論往往是基于“緩存”和各種數(shù)據(jù)存儲(chǔ)方式的,因?yàn)榈侥壳盀橹顾鼈兌际亲钣锌赡艹蔀樾阅芷款i的。對(duì)于Web服務(wù)器本身性能的討論也不是沒有,只是相對(duì)就少很多了,要有,大部分也是基于靜態(tài)請(qǐng)求的性能比較。

對(duì)于Web 2.0的網(wǎng)站來說,由于變化太多幾乎無法生成靜態(tài)頁(yè),因此這樣的Web應(yīng)用程序在一臺(tái)機(jī)器上的吞吐量根本達(dá)不到5K,即時(shí)是1K也幾乎不可能達(dá)到。在一臺(tái)目前普通配置的服務(wù)器上,如果可以達(dá)到每秒100多的動(dòng)態(tài)請(qǐng)求,基本上已經(jīng)做的相當(dāng)不錯(cuò)了,甚至50、60多也已經(jīng)基本“夠意思”了——像當(dāng)年豆瓣鬼神般的5、600(如果我沒有記錯(cuò)的話)幾乎難以再現(xiàn)了。不過100 RPS也已經(jīng)是一個(gè)很了不起的數(shù)字了,如果按6小時(shí)的密集請(qǐng)求來算,這樣一個(gè)動(dòng)態(tài)站點(diǎn)的日訪問量是多少呢?

當(dāng)然,Windows不是沒有性能問題,我只是說在IIS,Web開發(fā)等方面不會(huì)出現(xiàn)性能問題。有人說Windows的文件系統(tǒng),也就是NTFS的性能很差,尤其是在處理零碎地文件時(shí)候。這我也有所耳聞,平時(shí)也有類似的感覺,但是沒有經(jīng)過這方面的實(shí)踐,所以并無法說出準(zhǔn)確的結(jié)論。不過真的性能差,也要去好好了解它,這樣我們就可以設(shè)法避免一些薄弱的環(huán)節(jié)。隨意舉個(gè)例子,我們可以優(yōu)化自己程序的存儲(chǔ)方式,盡量讀取連續(xù)的數(shù)據(jù),讓文件系統(tǒng)的性能問題可以緩解一下。SQL Server不也是在NTFS上構(gòu)建出高效數(shù)據(jù)應(yīng)用的嗎?

使用Windows系統(tǒng)的另外的問題,也是被人提及很多次的問題,便是授權(quán)協(xié)議。Linux使用是不要錢的,而Windows是要花錢買的,這個(gè)自然應(yīng)該算入成本。不過在我看來,其實(shí)Windows并不貴。為什么呢?您可以去Dell的網(wǎng)站上看一下一臺(tái)預(yù)裝了Windows Server的服務(wù)器的價(jià)格,一個(gè)Web Edition的Windows Server操作系統(tǒng)的價(jià)格大約是3000多元,這也就相當(dāng)于一個(gè)普通程序員1個(gè)月的薪水而已,更何況操作系統(tǒng)可以算作是一次性投資。對(duì)于一個(gè)公司來說,每天開一次門就相當(dāng)于幾千幾萬的錢花出去了,購(gòu)買一個(gè)Web Edition的Windows Server價(jià)錢根本算不了什么。至于開發(fā)成本,這是一個(gè)太“虛”的東西,暫時(shí)就不討論了吧——我想,應(yīng)該也沒有什么理由可以有力證明使用ASP.NET會(huì)加大開發(fā)成本。

事實(shí)上,Web Edition已經(jīng)足夠部署ASP.NET應(yīng)用程序了,Enterprise Edition自然要貴上十幾倍甚至更多,但是您根本用不著。用盜版操作系統(tǒng)時(shí)帶來的壞習(xí)慣“要用就用最好的”,在產(chǎn)品環(huán)境中一定要改一下。哦,對(duì)了,微軟對(duì)于年收入低于100萬的公司,或是非盈利機(jī)構(gòu)都有非常大的折扣,甚至免費(fèi)的策略(如BizSpark計(jì)劃)。您不應(yīng)該錯(cuò)過。

因此我認(rèn)為,在Windows平臺(tái)上使用ASP.NET,是一個(gè)非常合適的Web應(yīng)用程序開發(fā)/運(yùn)行平臺(tái)。即時(shí)是對(duì)于創(chuàng)業(yè)型小公司來說,我也會(huì)選擇使用Windows + ASP.NET。

但是……微軟平臺(tái)上的授權(quán)價(jià)格并非總是個(gè)可以忽視的問題。因?yàn)镾QL Server實(shí)在是太貴了,而免費(fèi)的Express版本是不可以用于商業(yè)應(yīng)用的。如果我們想要使用SQL Server,那么成本的確會(huì)嘩嘩地上升,尤其對(duì)于創(chuàng)業(yè)公司來說這是比不可忽視的支出(當(dāng)然如果加入了BizSpark計(jì)劃……)。因此可以這么說,運(yùn)行ASP.NET的Windows很便宜,但是SQL Server,以及運(yùn)行SQL Server的Windows會(huì)非常昂貴。因此,對(duì)于數(shù)據(jù)存儲(chǔ)來說,我會(huì)選擇Linux下的免費(fèi)及開源的產(chǎn)品。而且我可以有更多的選擇,無論是關(guān)系型數(shù)據(jù)庫(kù),鍵/值存儲(chǔ)方式,還是現(xiàn)在慢慢再興起的如MongoDB那樣的無架構(gòu),文檔型數(shù)據(jù)庫(kù),都可以合理組裝使用。

所以我現(xiàn)在越來越推薦Windows + *nix的合作關(guān)系,至于在Windows和*unix項(xiàng)目的通訊問題上,其實(shí)絲毫不用擔(dān)心。如今各個(gè)項(xiàng)目都是基于標(biāo)準(zhǔn)的通訊協(xié)議(如TCP/IP,甚至HTTP),使用通用的或自定義的格式進(jìn)行數(shù)據(jù)交換的。對(duì)于一個(gè)Linux下的數(shù)據(jù)庫(kù)來說,它根本不會(huì)關(guān)心與它連接的是Windows還是Linux,也不會(huì)關(guān)心發(fā)起調(diào)用的是.NET還是Java,Python,Ruby平臺(tái)。大家根據(jù)協(xié)議辦事即可。

那么為什么業(yè)界總是認(rèn)為Windows性能差呢?原因可能是因?yàn)槲④浀?ldquo;聲譽(yù)”不太好,而業(yè)界聲音最響,最為活躍的大都是開源工作者或自由人士,他們自然會(huì)不遺余力地支持自己的環(huán)境——這很正常,優(yōu)秀的程序員一定是有信仰的,我一直這么認(rèn)為——當(dāng)然也會(huì)產(chǎn)生一些不客觀的FUD行為。還有便是,Windows進(jìn)入服務(wù)器領(lǐng)域時(shí)間比較晚,而且在IIS 5那些年代時(shí),Windows在服務(wù)器領(lǐng)域的表現(xiàn)的確不怎么好。因此,那時(shí)候留下的負(fù)面印象自然也會(huì)產(chǎn)生不好的影響。但是微軟是在發(fā)展的,微軟牛人非常多,微軟研究院的論文年年占據(jù)各大會(huì)議相當(dāng)比例,而微軟的產(chǎn)品的質(zhì)量也已經(jīng)足夠了得了。如果繼續(xù)用10年前的印象來判斷如今的微軟是不正確的——當(dāng)年微軟系統(tǒng)在服務(wù)器這塊沒有絲毫占用率(幾乎都是Unix,Oracle的天下),現(xiàn)在已經(jīng)占據(jù)中小公司80-90%,世界五百?gòu)?qiáng)50%的份額,這還不夠說明問題嗎?

關(guān)于這點(diǎn),作為Windows平臺(tái)下的程序員,我們應(yīng)該有足夠的自信,管別人怎么“懷疑”我們呢。

對(duì)了,還有一個(gè)可能的原因是由于微軟的技術(shù)太容易入門,導(dǎo)致給人不夠“牛逼”的感覺。這也是沒有必要的,就好比說,一個(gè)國(guó)家的初等教育水平高,能證明它的高等教育水準(zhǔn)不行嗎?這只是定位的問題,當(dāng)然這也是微軟的策略——但是這不是微軟的錯(cuò),也不是微軟技術(shù)沒有價(jià)值的證據(jù)。當(dāng)然,作為Windows平臺(tái)上的程序員,提高自己的能力是沒有錯(cuò)的。不光沒有錯(cuò),是一定必須這么做的!

不過必須承認(rèn)的是,Windows有個(gè)硬傷,就是您無法在上面搗鼓東西,例如換一個(gè)文件系統(tǒng),改一改內(nèi)核。如果你是熱衷于這方面的Geek,那么自然不應(yīng)該使用Windows。

最后,還是用PPT上的內(nèi)容收尾吧。在這份PPT的末尾附有30多頁(yè)的IIS Web應(yīng)用程序配置最佳實(shí)踐,是一個(gè)非常不錯(cuò)的參考,您一定要看一下。

分享:談從魔獸看PHP設(shè)計(jì)模式
前段時(shí)間看到有人用魔獸來解釋設(shè)計(jì)模式,感覺很有意思,于是我把它改了改,又添加了些設(shè)計(jì)模式內(nèi)容,今天發(fā)出來。有些地方借鑒了前人的內(nèi)容,沒有注明,請(qǐng)前人不要見怪

來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2009-10-06
相關(guān)PHP教程