Re: [請益] 計算機概論的問題

看板ask-why作者 (我要加入劍道社!)時間17年前 (2007/01/16 21:20), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串4/4 (看更多)
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.48.9

01/16 08:07,
對"程式設計師偷懶"有點不同的見解.在早期的CPU,累加的執行
01/16 08:07

01/16 08:08,
速度跟直接加一個數值是不同的,這樣寫可明確告訴CPU用累加
01/16 08:08

01/16 08:09,
而非用一般的加法,對程式最佳化有幫助.
01/16 08:09
andrew43:推本文作者與一樓 01/16 08:16

01/16 09:19,
寫 i=i+1 也可以 optimize 啊...compiler 沒那麼笨
01/16 09:19

01/16 10:15,
因為低階語言的ADD指令和INC指令的效能是有差的
01/16 10:15

01/16 10:16,
另外在Z Spec中,i++是否可以表示成i'=i+1?
01/16 10:16

01/16 11:43,
add 和 inc 不一定有差 要看 architecture
01/16 11:43

01/16 14:10,
同一個architecture會有相同的instruction set吧?
01/16 14:10

01/16 14:12,
也許樓上上指的是organization?
01/16 14:12
相同的 instruction set 不一定有相同的 architecture 以前也許 inc 比 add 快 但現在的 x86 架構下 兩者根本是一樣快的 (自己試一試就知道了)

01/16 14:16,
不過我們應該只是討論為什麼有i++吧....
01/16 14:16

01/16 14:18,
我認為原因就是一樓說的,ADD指令和INC指令的差異
01/16 14:18
如果你寫 i=i+1; 夠聰明的 compiler 就知道這和 i++; 是同樣的意思 而會選擇最適合的指令完成它 實際上 C 並沒有規定 compiler 看到 i++ 就要優先使用累加指令 也從來沒說你寫 i++ 會比 i=i+1 還快 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.3.35

01/17 08:16, , 1F
因為宣傳這種理念 符合我的利益
01/17 08:16, 1F

01/17 08:18, , 2F
抱歉推文寫錯篇 上一句 是要推在上一篇的 請問怎麼刪推文ꄠ
01/17 08:18, 2F

01/17 08:26, , 3F
在設計C語言時,大部分CPU對於inc跟add的速度是有差的.
01/17 08:26, 3F

01/17 11:38, , 4F
而C語言本來就不是定位在很高階的程式語言,最佳化在初期也
01/17 11:38, 4F

01/17 11:40, , 5F
是很簡陋的.因為compile時間也是cost.
01/17 11:40, 5F
文章代碼(AID): #15hD48DU (ask-why)
文章代碼(AID): #15hD48DU (ask-why)