看板 C_and_CPP 關於我們 聯絡資訊
TurboC++ CPU分別是ATOM(1.6GHz)和Vortex86(800MHz) 各跑for迴圈50次,迴圈內容空白不做事 結果,迴圈的整體花費時間,ATOM比Vortex86久 eg. for(int i=0;i<50;i++) {} 逐次增加迴圈次數試驗 for(int i=0;i<100;i++), for(int i=0;i<500;i++), for(int i=0;i<1000;i++) ...... 似乎在迴圈次數幾千次之後 ATOM花的時間慢慢追上了Vortex86 不太能理解為什麼時脈高的CPU,反而跑得比較慢 會是指令集的差異導致的嗎? ATOM(CISC) vs Vortex86(RISC) 請高手幫忙解答,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.170.220 ※ 編輯: licheer 來自: 114.26.170.220 (01/10 22:05) ※ 編輯: licheer 來自: 114.26.170.220 (01/10 22:15)
tropical72:我在想(推測),TC如果改用 long int 的話時間會快一點嗎 01/10 22:28
sorry,少打了i,已更正 ※ 編輯: licheer 來自: 114.26.170.220 (01/10 22:30)
tropical72:因tc的int只有2bytes,目前cpu處理都是4bytes會快些. 01/10 22:29
meconin:你要不要看一下他翻出來的 machine code,找一下spec ... 01/10 22:30
meconin:架構不一樣,你不能假設一個加法需要的cycle數一樣 01/10 22:30
akasan:我猜都沒下最佳化參數-_-... 01/10 22:31
akasan:而且拿了隨便兩顆CPU就來比CISC/RISC未免也太... 01/10 22:31
meconin:btw, 精簡指令集的操作需要的 CPU cycle 都超少 01/10 22:32
tingyushyu:兩顆都是CISC 01/11 00:56
purincess:推樓上 wiki上面寫這兩顆都x86 ISA的.. 01/11 01:05
purincess:反正把branch prediction, pipline length等等枝微細節 01/11 01:06
purincess:的microarchitecture的事情考慮進去的話根本沒辦法很簡 01/11 01:06
purincess:單的比較這兩個cpu 01/11 01:07
purincess:還好atom還沒有out-of-order execution... XD 01/11 01:07
tingyushyu:我猜atom較少迴圈中比較慢是因為pipeline比較深.. 01/11 01:10
meconin:原來正解是亂序 XDD 01/11 09:30