Re: 不相干的程式做multi-thread有幫助嗎?

看板Programming作者 (aaa)時間16年前 (2008/11/12 06:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串13/15 (看更多)
※ 引述《CharArray (char[])》之銘言: : 我最核心的問題是,硬把2個不相干的multi-process轉成multi-thread的overhead : 但在只有一台實體電腦的狀況下,上述的情形在multi-process也都存在, : 甚至更多,那為什麼還算overhead呢? Context-Switch Overhead Thread 和 Process 的主要差別在於有沒有 "Shared Virtual Memory" 要切換 Thread 只需要把暫存器儲存起來, 可以只在User-space (註) 要切換 Process 則要把整個 Virtual Memory 換掉 Overhead 在於... 1. 換Page Table 要跳到 OS Level~ 很花時間了 2. 要把整個 L1 (Virtual) Cache 清掉 3. 運氣不好還會把 TLB 清光光 Performance 要"同時"執行多個 Thread 用單核有SMT的CPU就可以 要"同時"執行多個 Process 則要用多核CPU Linux SMP 可以把 Thread/Process 分給不同核心 不過現在PC都多核心了~ 如果你核心夠多的話, thread/process跑起來, 效率應該不會差太多 (我沒測, 這是只是我猜測) (註) User-space Thread雖然切換的Overhead較小, 但是OS不知道 不會把你配給其它的核心去執行 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.82.178
文章代碼(AID): #196d52ei (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 13 之 15 篇):
文章代碼(AID): #196d52ei (Programming)