http://www.mobile01.com/topicdetail.php?f=296&t=662110&last=6663667#6656478
上述連結中的內文使我產生了這樣的疑問:為何軟體至今仍會有是否支援雙核心或四核心的功能差別?
早期CPU仍只有單核心時,也許就不太需要關注這個話題,但隨著CPU中核心的數目不斷的增加,這個話題似乎常在一些主題中被反覆提到,但...小弟似乎也未看見真正的回答。
程式設計或應用軟體開發時,不是會以執行緒(Threads)作為程式內運行的方式嗎?此設計不就是針對多核心或多執行緒的多核CPU來開發嗎?既然以此方式開發,還有雙核心、四核心,甚至6核心、12核心...的差別嗎?
且作業系統在推出時,不就已宣告該OS可使用的CPU數目及核心數目了嗎?究竟在多核心的支援上,是看OS的支援程度呢?還是Threads的設計程度?
還望有能的大大可以解小弟心中已久的疑惑,感謝!
不過設計門檻高,
(必須使用 delphi/bcb/vc++ 開發,以vb或其他工具並不容易實作)
大多數情況而言,也認為單序的程式就夠了,
讓os自行管理多行程(程式)的切換既可,
除了少數使用於多CPU(最少為雙CPU)的程式外,
一般的應用程式設計師不會找自己麻煩.
因為 Visual Studio.Net 中的VB.net提供了比較簡單的多緒程式設計,
也因為多核心cpu已經是入門級配備,
所以多緒程式設計慢慢變成主流,
並非一開始就是以多執行緒的程式設計為主.
多執行緒的程式會分配到幾個cpu,
基本上由OS決定,
但是多緒程式的複雜度及除錯難易度也會隨cpu數量增加而增加,
不是教科書上講的這麼簡單.
有人說開多個程式就會用到多工多核。那很顯然多核整體上感覺會順暢很多吧?
因為windows幾乎都是處在同時執行多個程式的狀態下。比如防毒軟體、網路連線、及其他windows在暗中執行的東東等。
即使在只執行單一遊戲的情況下,其實windows也不只有在執行遊戲一個程式而已。
而且雖然理論上,比如時脈3.0G的單核在同時執行二個程式時,一個程式會分到1.5G的執行時間,感覺上好像不遜於1.5G的雙核很多,但實際上用單核在執行多個程式時,經常感覺很卡,比光執行一個程式的效能會降低很多。感覺還不如先執行完一個程式,再執行另一個程式比較快。這種時候感覺多核顯然順暢許多。
但是如果有單一程式非常倚賴單一CPU的時脈,比如某個很耗CPU不支援多核的遊戲,那可能單一CPU負載超過100%,其他核心的CPU負載都不高,那可能就是雙核高時脈來跑這個遊戲反而比四核來得快。
不知我以上的這種說法對嗎?
內文搜尋

X