精華區beta Programming 關於我們 聯絡資訊
※ 引述《noguest.bbs@ptt.cc (guest)》之銘言: > ※ 引述《leicheong.bbs@bbs.sayya.org (理昌)》之銘言: > : 補上全域最佳化下的結果: > : 不論在#define或const宣告, 都只剩下這一句: > : 00401000 /$ 6A 0A PUSH 0A > 由此可以看出在最佳化後兩者並沒有差異, 你之前列出的差別是在沒有最佳化, > 甚至是可能是用 -g 的情形. 並不能以沒有最佳化的情況來下 const 會有較多的 > cache miss 或會有較慢的執行速度. 應以最佳化後的組語來比較, 兩者並無 > 差異. 可是需要留意一點, 在VC系列的compiler, optimization預設是關閉的(/Od). 需要手動打開. 因為 (尤其是在寫多線程的程式時) 打開optimization會有一定機會出現 「平常跑時會出現可重複的問題, 而在debug模式中卻不會出現」這種 令人頭痛的情況. (Overoptimization) 好像部份gcc compiler也有這種情況. (我不太用gcc因此詳細情況不清楚) 這樣在討論時是否以沒有optimization下的情況來討論比較正當呢? -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: ip-84-126-134-202.rev.dyxnet.com