作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] VC 測時失敗
時間Wed May 11 14:34:54 2011
※ 引述《tropical72 (藍影)》之銘言:
: #include <stdio.h>
: #include <time.h>
: #define N 10000000
: int PrimeCnt(int x); // 計算 2~x 之質數個數, 為引出問題,是用「超暴力」法
: int main()
: {
: clock_t t1, t2;
: int cnt;
: t1 = clock(), cnt=PrimeCnt(N), t2 = clock();
: printf("cnt=%d, td=%d\n", cnt,t2-t1);
: return
: }
: 上面的 td 永遠都是 0,
: 估應是 Opt. 問題
: 把 setting [快速執行效能 (/O2)] 關掉的確可正常,
: 不過這樣測時似乎沒太大意義. 所以現在測時都寫在 sub_func 裡面,
: 但維護起來真的很不方便, 想請各位是否有什麼技巧能在 /O2 情況下進行測時?
: 謝謝各位!
除了用volatile 我找到方法避開了: 在 main 裡多設一層 function pointer 便可
這的確也對我的整體「測試架構」(因不只寫一個 sub function) 較好
----
會再另發文是想再進一步探討額外問題:
volatile 本身是否「有可能」會影響最佳化結果?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.73.222
→ akasan:不是 有可能 是會影響 05/11 14:51
→ tropical72:謝謝樓上解惑! 05/11 17:48