[問題] 相同型態的變數但值不同,運算量的差異?

作者: hsiansheng (SHENG)   2017-09-15 11:34:22
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出):
C
問題(Question):
int a = 0, b = 0, c = 0;
case 1:
a = 1, b = 1;
c = a + b;
case 2:
a = 100000, b = 100000;
c = a + b;
宣告的變數型態相同,但值閾不同,
上述兩個case分別的運算量會有差異嗎?
已爬文並作了實驗,
找不到可解答我的問題,
只有運算子不同的運算量:除法 > 加, 減, 乘
或是型態不同的運算量:double > int
而自己的實驗上則是差不多。
也許大家可以提供我該往哪個方向去尋找,
非本科系,目前不知道該下什麼關鍵字才能找到此問題的答案QQ~
餵入的資料(Input):
作者: nh60211as   2017-09-15 11:37:00
算個五百萬次就確定有沒有差距了,可以看計算機結構
作者: s4300026 (s4300026)   2017-09-15 12:13:00
要測的時候,記得砍掉switch case
作者: chuegou (chuegou)   2017-09-15 12:23:00
看編譯器優化成怎樣吧
作者: enonrick (EnonRick)   2017-09-15 12:26:00
把asm dump 出來就知道啦
作者: TianBonBon (田蹦蹦)   2017-09-15 12:27:00
看編譯出來的組語和執行的平台這有機會被優化到編譯時期就把運算結果放到變數c了
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-09-15 17:58:00
想太多,測也不是這樣測。"閾"是threshold。

Links booklink

Contact Us: admin [ a t ] ucptt.com