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 山風小子 閱讀(3402) 評論(23)  編輯  收藏 所屬分類: Python & Ruby & RoR
          主站蜘蛛池模板: 满城县| 盘山县| 凉山| 辉南县| 福海县| 咸宁市| 鞍山市| 武平县| 来宾市| 湘潭县| 吉木乃县| 乌兰察布市| 即墨市| 宝丰县| 苏州市| 辉南县| 吉木萨尔县| 冕宁县| 聊城市| 保德县| 都匀市| 奉新县| 永昌县| 正阳县| 喀什市| 即墨市| 六枝特区| 修武县| 炉霍县| 于田县| 肥东县| 年辖:市辖区| 镇平县| 镇雄县| 清涧县| 涿鹿县| 乌审旗| 时尚| 彭阳县| 邮箱| 丘北县|