→ sky391: 這影像處理是一直持續做,讀圖->影像處理->填圖 10/15 09:14
推 johnpage: Emp->Canvas->Pixels[i%400][i/400]=(TColor)RGB(colR,c 10/15 11:19
→ johnpage: olG,colB); 這段導致緩慢 10/15 11:19
→ johnpage: 可用double buffer方法改善 10/15 11:21
→ johnpage: 如果用組合語言,可以把%改用AND,/改用SHIFT 10/15 11:23
→ Feis: 試著橫向填圖, 並看看有沒有比較低階的方法填 10/15 11:44
→ hichcock: BCB 沒有貼整張圖的指令嗎?? 10/15 11:46
→ sky391: BCB不確定有沒有直貼整張的 10/15 11:52
→ dirkc: 0/400有些怪;賦值的過程記憶體一直跳,可能是慢的主因 10/15 13:00
→ sky391: 我用i = 1開始也沒有改變 10/15 14:20
→ loveflames: 重點不是i=0或i=1 10/15 14:29
→ sky391: 已經是分成RGB三個,還有辦法一次抓記憶體嗎? 10/15 14:37
→ loveflames: 合在一起比較好,這樣資料局部性比較高,cache miss 10/15 14:49
→ loveflames: 的延遲比較低。另外就是切幾個thread,利用cache miss 10/15 14:50
→ loveflames: 時跑其他thread(如果你的CPU支援hyperthreading的話) 10/15 14:50
→ loveflames: 不知道RGB函數裡做了些什麼,也許可以用SIMD/FMA指令 10/15 14:53
推 johnpage: 記憶體部分沒有問題 10/15 15:11
→ johnpage: 問題在顯示的部分 10/15 15:12
→ loveflames: i/400確實也是問題,記憶體不連續產生write miss 10/15 15:24
推 EdisonX: 原文後段已有解法 , 照著解效能應可有明顯提升. 10/15 21:37
→ dirkc: 阿我的意思就是[][]那裡記憶體一直跳,不是零或一,感謝澄清 10/18 14:45
推 bluesoul: 把乘法,除法,取餘數拿掉,用別的方法代替 10/18 22:23
→ sky391: 謝謝大家的幫忙 問題已解決 10/23 10:02
→ sky391: 感謝E大的方法 最後效能從做一次8Xms提升到一次4Xms 10/23 10:44