KDOC 304: 加算と乗算どちらが早いか?
この文書のステータス
- 作成
- 2024-11-23 貴島
- レビュー
- 2024-11-27 貴島
概要
Goランタイムのコードで、同じ値を足して2倍にしている箇所がある。2倍にするとき、同じ値を足すのを不思議に感じた。加算のほうが早いということはありうるだろうかと考えた。
https://github.com/kd-collective/go/blob/493edb29735fd2adf2087b32c60617dad11dc6e1/src/runtime/slice.go#L291
doublecap := newcap + newcap
関連
抽象。
- 同じ結果になる書き方でも、使う演算の種類で速さが違いうる
関連。
- 補足: KDOC 243: 2の累乗の乗算はシフト演算命令に変換される。2の累乗の乗算は、コンパイラがシフト命令に置き換える例