Re: [問題] 執行時所耗費時間長短問題

看板C_and_CPP作者 (我要加入劍道社!)時間13年前 (2010/09/18 13:29), 編輯推噓1(108)
留言9則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《secret999 (Je suis désol)》之銘言: : 謝謝大家的回應 : 不過這不是在pc上跑的... : 省些ns累計到us甚至近1ms...就能大幅改善我的問題@@ : 所以才發這篇文 問各位版大們 : 希望能夠知道耗費時間 : 以及一些省時技巧 做最佳化有幾項原則: 1. 先求結果正確 這道理很簡單,因為先寫出一個慢但是結果正確的版本, 你之後要做最佳化的時候才有比較的對象。 如果你一開始就一邊做optimization一邊設計程式, 一年後發現把所有自作聰明的optimization拿掉後程式反而跑更快 那就真的哭哭了 2. 先從演算法的層級去降低 complexity 這應該不用說明 3. 使用 profiling 去分析程式中的效能瓶頸 我想這是你要問的重點,profiling 是 compiler 提供的一項功能, 可以在所有的函式呼叫前後插入計時點,幫你計算你的程式在執行過程中, 這些函式分別花了多少時間。 先使用 profiling 找出程式中最花時間的部份,你才能對症下藥。 如果你的程式是因為大量的 cache miss 導至效能不彰, 那你把運算部份的程式碼改得再快也沒用。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.69.155

09/18 14:40, , 1F
09/18 14:40, 1F

09/18 14:42, , 2F
The First Rule of Program Optimization: Don't do it.
09/18 14:42, 2F

09/18 14:42, , 3F
The Second Rule of Program Optimization (for experts
09/18 14:42, 3F

09/18 14:42, , 4F
only!): Don't do it yet.” -- Michael A. Jackson
09/18 14:42, 4F

09/18 15:04, , 5F
謝謝提供的方法, 之前已經改過演算法 時間降為原本1/12
09/18 15:04, 5F

09/18 15:06, , 6F
因為自己寫C時間不長, 想獲得一些東西, 順便改善coding
09/18 15:06, 6F

09/18 15:06, , 7F
style, 有些部份改成易閱讀 又能省時 便可一舉兩得
09/18 15:06, 7F

09/18 15:07, , 8F
平常寫code會偏向讓人易懂, 不過現在需要的是速度
09/18 15:07, 8F

09/18 15:08, , 9F
再次感謝大家的回覆^^
09/18 15:08, 9F
文章代碼(AID): #1Cb4urES (C_and_CPP)
文章代碼(AID): #1Cb4urES (C_and_CPP)