※ 引述《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