[問題] C的compiler處理非Optimize效能的疑問
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我這邊寫了很簡單的迴圈來計算sin(),在optimize disable
的情況下發生一個我不能理解的事情。
D1 = timeGetTime();
for ( int i = 0; i < 35000000; i++ )
{
temp = sin( M_PI * 0.38 );
}
D1 = timeGetTime() - D1;
printf( "D1: %d \n", D1 );
D2 = timeGetTime();
float value = M_PI * 0.38f;
for ( int i = 0; i < 35000000; i++ )
{
temp = sin( value );
}
D2 = timeGetTime() - D2;
printf( "D2: %d", D2 );
結果是D1的時間花的比較少...我不是很理解。但如果把Optimize打開之後,D2的時間
就比較少了。這是為什麼?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
不好意思,這是小弟第一次在此板PO文,如有不禮貌請多多指教:
我的code是在VC環境下編譯,所以有使用windows.h的header。
在此附上原始碼,煩請高手予以指教。
http://codepad.org/ehRQvsZs
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.180.122
→
10/15 00:51, , 1F
10/15 00:51, 1F
→
10/15 00:53, , 2F
10/15 00:53, 2F
→
10/15 00:58, , 3F
10/15 00:58, 3F
→
10/15 00:58, , 4F
10/15 00:58, 4F
→
10/15 00:59, , 5F
10/15 00:59, 5F
→
10/15 01:01, , 6F
10/15 01:01, 6F
→
10/15 01:02, , 7F
10/15 01:02, 7F
推
10/15 01:03, , 8F
10/15 01:03, 8F
→
10/15 01:04, , 9F
10/15 01:04, 9F
※ 編輯: GhostMonkey 來自: 59.115.180.122 (10/15 01:30)
→
10/15 01:39, , 10F
10/15 01:39, 10F
→
10/15 01:44, , 11F
10/15 01:44, 11F
→
10/15 01:47, , 12F
10/15 01:47, 12F
→
10/15 01:49, , 13F
10/15 01:49, 13F
→
10/15 10:03, , 14F
10/15 10:03, 14F
→
10/15 10:04, , 15F
10/15 10:04, 15F
→
10/15 10:04, , 16F
10/15 10:04, 16F
→
10/15 10:05, , 17F
10/15 10:05, 17F
推
10/15 10:11, , 18F
10/15 10:11, 18F
推
10/15 14:49, , 19F
10/15 14:49, 19F
→
10/15 14:50, , 20F
10/15 14:50, 20F
→
10/15 14:50, , 21F
10/15 14:50, 21F
推
10/15 16:16, , 22F
10/15 16:16, 22F
→
10/15 16:16, , 23F
10/15 16:16, 23F
→
10/15 22:08, , 24F
10/15 22:08, 24F
推
10/16 03:10, , 25F
10/16 03:10, 25F
推
10/16 22:12, , 26F
10/16 22:12, 26F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章