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

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

          你目前在工作站上用的CPU時(shí)鐘速度是多少?10GHz么? 2001年8月Intel芯片就達(dá)到2GHz,按照2003年前的CPU發(fā)展趨勢(shì)推算,到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í)鐘速度的競(jìng)賽實(shí)際上結(jié)束了,Intel和其他大多數(shù)處理器廠商將把旺盛的精力投入到多核等方向去。

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

          如果應(yīng)用程序想充分利用CPU吞吐增加量,那它們就必然日益需要并發(fā),這種形勢(shì)逐漸明朗,并將在接下來的數(shù)年里深入發(fā)展。Intel已經(jīng)揚(yáng)言未來他們會(huì)推出集成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)小子 閱讀(3402) 評(píng)論(23)  編輯  收藏 所屬分類: Python & Ruby & RoR
          主站蜘蛛池模板: 扶风县| 华安县| 赤壁市| 东辽县| 玉环县| 镇坪县| 霞浦县| 恭城| 利川市| 彝良县| 黑龙江省| 泸溪县| 岳池县| 隆子县| 五常市| 枣强县| 翼城县| 太谷县| 沙雅县| 遂宁市| 荣昌县| 象山县| 卓资县| 镇坪县| 德清县| 昭通市| 淮滨县| 巴青县| 伊春市| 保靖县| 康平县| 遵义市| 正蓝旗| 福州市| 新平| 旌德县| 宁乡县| 华宁县| 台中县| 呼伦贝尔市| 罗甸县|