忘れないようにメモ。
以下、研修で出した話。
.NET Frameworkで登場する整数型は、
- int …… 32bit 符号付き整数
- long …… 64bit 符号付き整数
です。CPUとWindowsなどが64bitなら、64bit整数を使った方がいいのかな?と思いそうなところですが、実際の世の中のプログラムを見ても大抵32bit整数が選択されています。これはなんでだろう?というのを少し調べてみた結果です。
これはC++という言語の例ですが、データサイズと処理するコンピューターのbit数での速度について議論されています。その中で、Intel社の情報として下記の文言が登場しています。
アセンブリー/コンパイラー・コーディング規則 63 (影響 H、一般性 M): 64 ビット・モードでは、64 ビット・データや追加レジスターへのアクセスに 64 ビット版の命令が必要な場合を除き、32 ビット版の命令を使うことでコードサイズを削減します。
どういうことかというと、64bitで動くCPUも「特に64bitが必要なケース」以外では32bitの軽量カップでデータを入れたり出したりしてる、ということです。なので、普通の計算で使うデータはなんであれ32bit単位で処理されるので、現在のプログラミング言語では32bitのデータが一番効率よいという結論になるようです。
INTEL Core i9 - 9900KF 3.6 GHz 16MB キャッシュ 8コア/16スレッド LGA1151 BX80684I9900KF 【BOX】
- 出版社/メーカー: インテル
- 発売日: 2019/03/29
- メディア: Personal Computers
- この商品を含むブログを見る