私は x86 に焦点を当てていると思いますが、一般的には 32 ビットから 64 ビットへの移行に関心があります。
論理的には、場合によっては定数とポインターが大きくなるため、プログラムが大きくなる可能性があることがわかります。また、効率のために単語境界にメモリを割り当てたい場合は、割り当て間の空白が増えることになります。
また、x86 の 32 ビット モードでは、4G アドレス空間が重複している可能性があるため、コンテキストの切り替え時にキャッシュをフラッシュする必要があると聞いています。
では、64 ビットの本当のメリットとは何でしょうか?
補足質問ですが、128ビットの方が良いでしょうか?
編集:
初めての 32/64 ビット プログラムを作成しました。16 バイト (32b バージョン) または 32 バイト (64b バージョン) オブジェクトのリンク リスト/ツリーを作成し、stderr に多くの出力を行います。
サイズ: 81128(32b) v 83672(64b) - それほど大きな違いはありません
速度: 17 秒 (32b) v 24 秒 (64b) - 32 ビット OS (OS-X 10.5.8) で実行
アップデート:
64b であるが 32b ポインターを使用する新しいハイブリッド x32 ABI (Application Binary Interface) が開発されていることに注意してください。一部のテストでは、32b または 64b よりもコードが小さくなり、実行が高速になります。