日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

淺談微軟對PHP支持的改進 及其它一些胡言亂語_PHP教程

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

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

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

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

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

微軟對PHP支持的改進 及其它一些胡言亂語圖片1 點擊查

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

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.

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

這也是PPT的截圖之一。從中可以看出IIS 7的吞吐量完全可以達到靜態(tài)文件請求20K,ASP.NET請求5K RPS(每秒請求數(shù))的吞吐量。這是100%的事實,我可以擔保,因為在我07年在微軟的時候,曾經(jīng)在自己工作用的普通 32位workstation上試驗過,請求靜態(tài)文件輕松超過了10K。算上IIS 7的性能增強,以及測試機的性能因素,得到上圖的結(jié)果完全沒有問題。至于ASP.NET動態(tài)請求的性能,5000多完全就是一個沒有意義的數(shù)字了——我不是說它假,我只是說它沒有意義。因為對于動態(tài)請求來說,純粹比這種“空請求”的吞吐量,幾乎沒有任何實際參考價值。因為,我們有其它的性能瓶頸,根本達不到IIS本身的性能限制。

對于普通Web應(yīng)用程序來說,如果在實現(xiàn)上沒有大的問題,幾乎不會讓Web服務(wù)器(指IIS這種,不是指“機器”)成為性能瓶頸。性能瓶頸往往是在外部服務(wù)器調(diào)用,或者外部數(shù)據(jù)訪問上。例如耗時的SQL查詢一多,應(yīng)用程序整體性能自然就下來了。因此,業(yè)界最為熱烈的討論往往是基于“緩存”和各種數(shù)據(jù)存儲方式的,因為到目前為止它們都是最有可能成為性能瓶頸的。對于Web服務(wù)器本身性能的討論也不是沒有,只是相對就少很多了,要有,大部分也是基于靜態(tài)請求的性能比較。

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

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

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

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

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

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

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

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

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

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

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

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

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

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