看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《SocketAM2 (AM2)》之銘言: : 1. leftBound只是常數,且每次回圈都用在判斷,這可以改善 : 2. inner loop中的image[yi+c][b_next] : 2.1 b_next未宣告 : 2.2 c的值沒有保護跨界提取 : 3. score > 200的條件可以提到最前面檢查一次就好(甚至caller自己該處理),這個200和leftBound的2都可以#define constant : 4. outer loop中第一個if成立的話,如果條件不符合可以直接break出去接return False,因為下一個b一定是break : 以上能“優化”的效果很可能難易被人察覺或造成有意義的差別... : 你要不要說下想做什麼 : 考慮到上面第二點,我猜實際的問題可能不是優化 : 程式的正確性也許需要先確認一下 : 例如byte * * image就不太像典型的存放影像pixel值的方式 : 另外,如果你要算的圖是拍來的要更小心... : 小的是低手,請高手盡量鞭 -------------------------------------------------------------------- 根據其他人的留言,我再補充 優化方向 主要是希望能優化"程式"執行的速度 或是記憶體能用的比較少這部分 感謝各位參與討論的人 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.152.122 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1536756469.A.7A6.html
Schottky: 問題是你沒代沒事為何要優化 09/13 00:05
Schottky: 有遇到記憶體不足或執行速度過慢的障礙嗎? 09/13 00:10
cphe: 作業樓上不用太認真 09/13 02:32
Schottky: 樓上,我倒覺得應該沒人會出這麼蠢的作業... 09/13 07:34
Schottky: 我也覺得1.應該先探討正確性2.講解一下這段程式的目的 09/13 07:35
Schottky: 再仔細看看,整個程式錯得很離譜,永遠不會return TRUE 09/13 07:41
Schottky: 那我建議最快的方法是不要做任何運算直接return FALSE 09/13 07:42
Schottky: 我真是太聰明了 09/13 07:42
cphe: 其實貼個程式碼連自己想法什麼都沒交代我就當成是作業啦 09/13 08:39
cphe: 要不要理當然看個人了 09/13 08:39
sarafciel: http://mis.ndhu.edu.tw/docu/question.htm 09/13 09:02
sarafciel: 比起學程式碼 我建議你先學會發問 09/13 09:03
MOONRAKER: Smells like homework. 09/13 11:15
dmeiki: 1. Loop Unrolling 2. Improve temporal locality 09/13 11:18