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

看板C_and_CPP作者 (Je suis désol)時間13年前 (2010/09/17 23:16), 編輯推噓3(3017)
留言20則, 8人參與, 最新討論串1/2 (看更多)
遇到的問題: (題意請描述清楚) 想要了解程是在run time時, 每個function,for,while,判斷式...等耗費時間 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 有問題的code: (請善用置底文標色功能) 補充說明: 例如 if(1==x) else if(2==x) else if(3==x) ... 可以換成用switch (x) 若像 x為unsigned的, if(0==x) 寫成 if(!x) 但是這樣速度會稍為快一點嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.210.12

09/17 23:20, , 1F
no, 不如考慮調整演算法
09/17 23:20, 1F

09/17 23:31, , 2F
要速度快,考慮改用組語寫
09/17 23:31, 2F

09/17 23:32, , 3F
Don't over optimize...
09/17 23:32, 3F

09/17 23:42, , 4F
一開始先求功能有, 再抓大部份的時間在做什麼處理.
09/17 23:42, 4F

09/17 23:43, , 5F
你必須知道的一點是 : 寫程式的時間遠比你維護他的時
09/17 23:43, 5F

09/17 23:43, , 6F
細微的調整實質效益不大
09/17 23:43, 6F

09/17 23:44, , 7F
間還短, 如果測試 x 是否為奇數用 if( x & 1 ) 來做,
09/17 23:44, 7F

09/17 23:44, , 8F
不用說別人, 以後你再來看程式碼一定也要想一陣子, 更
09/17 23:44, 8F

09/17 23:45, , 9F
何況每個地方都這樣搞, 光看個程式就累死人了, 更不
09/17 23:45, 9F

09/17 23:46, , 10F
用說去偵錯, 寫程式先求正確, 如果真的慢到你無法接受
09/17 23:46, 10F

09/17 23:47, , 11F
才來要求他跑快一點, 快可是跑不對的程式乾脆不要寫。
09/17 23:47, 11F

09/18 00:19, , 12F
有時候是天生的瓶頸限制, 那時候就要把整個架構翻新重寫
09/18 00:19, 12F

09/18 01:24, , 13F
現在電腦都很快 真的有必要這樣?
09/18 01:24, 13F

09/18 03:43, , 14F
其實可以 #define IS_ODD_NUMBER(x) (x & 1)
09/18 03:43, 14F

09/18 03:44, , 15F
直接寫 x & 1,如果是我認識的,一定會被我唸。
09/18 03:44, 15F

09/18 06:36, , 16F
那直接寫加註解應該就不會被罵吧?不過define比較漂亮。
09/18 06:36, 16F

09/18 11:18, , 17F
盡量用有自我描述能力的程式碼代替註解。
09/18 11:18, 17F
謝謝大家的回應 不過這不是在pc上跑的... 省些ns累計到us甚至近1ms...就能大幅改善我的問題@@ 所以才發這篇文 問各位版大們 希望能夠知道耗費時間(單位時間, 或快慢比較) 以及一些省時技巧 ※ 編輯: secret999 來自: 115.81.40.63 (09/18 12:42)

09/18 13:32, , 18F
讓編譯器輸出組語檔,然後查硬體指令表,看一個指令多久。
09/18 13:32, 18F

09/18 13:32, , 19F
8051 我記得都有那種表。
09/18 13:32, 19F

09/18 13:32, , 20F
因為你沒說平台,所以提供最一般化的方法。
09/18 13:32, 20F
文章代碼(AID): #1CauPg2Z (C_and_CPP)
文章代碼(AID): #1CauPg2Z (C_and_CPP)