不談理論的,就談實際用起來的情況,雙核頻率也許不高,但是實際用起來比單核快多了。
雖然windows有多工,但是用單核應該都知道,windows正忙於一項工作時,最好不要再開另一項工作,否則會加倍的慢。最好是一項工作處理完再執行一項。
而雙核,舉實例好了。我今天用photoshop處理大圖,要好幾分鐘,photoshop這個程式幾乎忙到當掉無回應,但是我開explore看網頁,卻還是一樣暢快,因為開ie是用另一個核心。瀏覽網頁一會後,回去photoshop看,圖已經處理好了。
若是已往的單核,在photoshop已佔掉所有cpu資源時,還去開啟另一個程式,那麼二個程式都會加倍的慢。但是雙核就運作得順暢且快速多了。
就算不是跑多個程式好了,感覺雙核也比單核順暢不少。因為windows本身就經常處在多工之中,多一個cpu就好像多一個幫手一樣!
主要要看OS怎麼分配...
例如有一個事件1要處理...
OS只會丟到核心1...
那核心2呢???在閒置...
他不會幫忙處理...
這樣看來一樣是單核心...
並不會一件事由2個核心同時處理...
而達到更快的速度...
但多了一個事件2呢...
OS會丟給核心2...
讓2個核心同時處理2件事...
如果核心1處理事件1需要10分鐘...
核心2處理事件2需要20分鐘...
傳統單核心會先處理事件1再處理事件2...
總共會是30分鐘...
(實際上會處理事件1處理一半又處理事件2...切來切去...所以很慢...時間會超過30分鐘...)
雙核心會同時處理2個事件...所以最多也20分鐘就處理完了...
如果OS能寫到能把閒置的核心同時幫忙處理另一個核心的事件...
會變成核心心處理事件1處理完又幫核心2處理一半的時間...
也就是核心1處理事件1需10分鐘...又處理事件2 5分鐘...
核心2處理事件2只需15分鐘...
整體快了5分鐘...
這樣子是不是快了許多...
問題是...現在OS還無法做到這樣子...
因為核心1永遠不會知道核心2處理到哪裡...
核心2也不知事情要處理多久要如何把一半的時間給核心1處理...
況且誰有權利去抓取和存取記憶體...這都是問題...
所以目前的雙核心可以看成是2台單核心電腦在處理事情...
只是他是在同一台電腦上做而已...
最大的問題還是卡在OS無法把處理的程序最佳化...
因為這是個很大的難題...
雙核心真的比較快嗎?某種程度上是有...
但某種程度上他也算是單核心...
ANYWAY...單不單雙不雙不重要...
能省電又安靜才是王道...低溫又省電才是現在人比較關切的重點...
因為開24小時...幾乎都在待機中...能省則省...
錢不好賺呀...
qpiglarry wrote:
雙核其實也快不了多少...(恕刪)
這樣講有點模糊
OS 並不能直接拆解AP延展平行度
但是如果AP的系統呼叫適當的話
OS還是能合理地分配運算資源
另外,OS也不是單純把程序丟到不同的CPU去做就不管事情了
有一種技術叫做「分時多工」
OS會把CPU資源切割許多塊給不同的程序執行用
比如AP1的某項動作需要硬體的DMA配合OS達成
AP1就可能暫時進入等候序列
而這時AP2就能適時介入使用CPU資源
或者交給某個OS內部程序使用
因此各個程序間的執行會有重疊區間
這也是減少的時間的由來....當然也可以看成多程序執行的效率變好了
另外在某些 RTOS 的排程設計上
是有所謂的預先排程技術
配合事先演算規劃...的確是可以完全達到特定時間執行的 hard scheduling
這樣就可以讓各個程序充分地分享利用CPU資源
當然...就一般情況所設計的OS是很難做到的
內文搜尋

X