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