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的語法可以借鑒,但其本身的實現就免了

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

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

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

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

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

          總結一下我的觀點:
          CPU性能提升途徑主要是靠實現多核,靠提高主頻是沒有多大希望了,而單線程僅僅能利用單核資源,嚴重浪費了多核CPU提供的性能,不幸的是,Ruby的線程是偽線程,即始終僅有一個線程在執行,隨著軟件的日益龐大,Ruby將不得不求助于CPU主頻的提升,但像前面所說的那樣,4G都是一個遙不可及的目標,別提10G甚至更高了。我堅信,RoR終有一天不堪重負,被Java擊潰!?
          posted on 2006-12-11 14:53 山風小子 閱讀(3388) 評論(23)  編輯  收藏 所屬分類: Python & Ruby & RoR
          主站蜘蛛池模板: 榆树市| 鄢陵县| 集安市| 巫溪县| 双流县| 兴文县| 康平县| 阿拉尔市| 桑植县| 隆尧县| 乐安县| 开远市| 吉林省| 奉新县| 莱芜市| 临湘市| 习水县| 安西县| 苏尼特右旗| 江油市| 比如县| 甘洛县| 奉节县| 烟台市| 河东区| 哈密市| 嘉鱼县| 洪洞县| 金川县| 抚远县| 尖扎县| 龙岩市| 正宁县| 瓦房店市| 囊谦县| 邳州市| 镇巴县| 公主岭市| 郸城县| 雷山县| 改则县|