First they ignore you
          then they ridicule you
          then they fight you
          then you win
              -- Mahatma Gandhi
          Chinese => English     英文 => 中文             
          隨筆-221  評論-1047  文章-0  trackbacks-0
          Ruby的語法可以借鑒,但其本身的實(shí)現(xiàn)就免了

          說Ruby是一種沒有光明前途的語言的原因:
          Ruby的Thread是偽線程,不管代碼中寫了多少個(gè)Thread.new,Ruby都只啟動了一個(gè)線程去運(yùn)行這些Thread的代碼。
          這樣做的確使得Ruby的Thread很容易控制,程序也不容易產(chǎn)生類似死鎖這類嚴(yán)重的線程問題。但是效率始終無法提高,因?yàn)樵趓uby進(jìn)程中,實(shí)際上只有一個(gè)真實(shí)的線程在運(yùn)行,同樣的代碼在那么多核或者多cpu的電腦上運(yùn)行效率和單核cpu的電腦上的效率并不會相差多少。

          你目前在工作站上用的CPU時(shí)鐘速度是多少?10GHz么? 2001年8月Intel芯片就達(dá)到2GHz,按照2003年前的CPU發(fā)展趨勢推算,到2005年初,我們就能擁有第一塊10GHz的Pentium芯片。但實(shí)際上沒辦到。而且情況好像越來越糟——我們根本就不知道到底在什么時(shí)候這樣的芯片可以出現(xiàn)。

          那么放低期望,4GHz又如何呢?目前我們已到3.4GHz——那么4GHz已經(jīng)不遠(yuǎn)了吧?唉,好像4GHz也遙不可及。可能你知道,Intel首先于2004年中將4GHz芯片的發(fā)布時(shí)間推遲到2005年,而到了2004年秋季,則徹底取消了4GHz計(jì)劃[譯注11]。在本文寫作的同時(shí),Intel宣布計(jì)劃到2005年早期,實(shí)現(xiàn)到3.73GHz(即圖中的右上最高處)的微量提升。所以,至少就目前來說,時(shí)鐘速度的競賽實(shí)際上結(jié)束了,Intel和其他大多數(shù)處理器廠商將把旺盛的精力投入到多核等方向去。

          也許,我們某天在主流PC里能裝上4GHz的CPU,但2005年別想。Intel實(shí)驗(yàn)室里的確已經(jīng)有運(yùn)行在更高速度的芯片——不過代價(jià)是驚人的,比如龐大數(shù)量的冷卻裝置。你想不久在你的辦公室里就有這樣的冷卻設(shè)備,坐飛機(jī)的時(shí)候,就把它們放在你膝蓋上?別做夢了!

          如果應(yīng)用程序想充分利用CPU吞吐增加量,那它們就必然日益需要并發(fā),這種形勢逐漸明朗,并將在接下來的數(shù)年里深入發(fā)展。Intel已經(jīng)揚(yáng)言未來他們會推出集成100顆內(nèi)核的芯片,那么單線程應(yīng)用最多就只能利用這種芯片1/100的潛在生產(chǎn)力。“哦,性能沒那么重要吧,計(jì)算機(jī)總是跑得越來越快”的論調(diào)已經(jīng)變得天真而可疑,甚至在未來不久將完全錯(cuò)誤。

          總結(jié)一下我的觀點(diǎn):
          CPU性能提升途徑主要是靠實(shí)現(xiàn)多核,靠提高主頻是沒有多大希望了,而單線程僅僅能利用單核資源,嚴(yán)重浪費(fèi)了多核CPU提供的性能,不幸的是,Ruby的線程是偽線程,即始終僅有一個(gè)線程在執(zhí)行,隨著軟件的日益龐大,Ruby將不得不求助于CPU主頻的提升,但像前面所說的那樣,4G都是一個(gè)遙不可及的目標(biāo),別提10G甚至更高了。我堅(jiān)信,RoR終有一天不堪重負(fù),被Java擊潰!?
          posted on 2006-12-11 14:53 山風(fēng)小子 閱讀(3404) 評論(23)  編輯  收藏 所屬分類: Python & Ruby & RoR
          主站蜘蛛池模板: 松溪县| 胶南市| 中江县| 鸡泽县| 黄平县| 锦州市| 南康市| 宝山区| 金昌市| 敦化市| 册亨县| 古田县| 绥江县| 华蓥市| 嘉荫县| 平谷区| 建湖县| 娱乐| 大同市| 福清市| 四会市| 兰州市| 保靖县| 泸定县| 华蓥市| 乡城县| 湖南省| 左贡县| 宣威市| 来宾市| 新丰县| 额尔古纳市| 临湘市| 嘉兴市| 平利县| 文安县| 铜梁县| 方正县| 永福县| 永德县| 迁西县|