[解決済み] 64ビット版のプログラムは32ビット版より大きく、速いのですか?
質問
私は x86 に焦点を当てていると思いますが、一般に 32 ビットから 64 ビットへの移行に興味があります。
論理的には、定数やポインターがより大きくなるため、プログラムがより大きくなる可能性があることは理解できます。また、効率化のためにワードの境界でメモリを割り当てたいので、割り当ての間の空白が増えることになります。
また、x86 の 32 ビットモードでは、4G アドレス空間が重複する可能性があるため、コンテキスト スイッチ時にキャッシュをフラッシュする必要があると聞いたことがあります。
では、64 ビットの本当の利点は何でしょうか。
また、補足として、128ビットの方がさらに良いのでしょうか?
編集してください。
私はちょうど私の最初の32/64ビットプログラムを書きました。16 バイト (32b 版) または 32 バイト (64b 版) のオブジェクトのリンクリスト/ツリーを作成し、標準エラー出力に多くの印刷を行います - 本当に役に立つプログラムではなく、典型的なものでもありませんが、これが私の最初のプログラムです。
サイズ: 81128(32b) v 83672(64b) - それほど大きな違いはありません。
速度: 17s(32b) v 24s(64b) - 32 ビット OS (OS-X 10.5.8) 上で実行中。
アップデート。
新しいハイブリッド x32 ABI (Application Binary Interface) が開発中で、64b ですが 32b のポインターを使用します。いくつかのテストでは、32b や 64b よりも小さなコードと高速な実行を実現しています。
https://sites.google.com/site/x32abi/
どのように解決するのですか?
32b アドレッシングが許すより多くのメモリにアクセスする必要がない限り、利点はあったとしてもわずかなものでしょう。
64b CPU で実行する場合、32b または 64b のコードを実行していても、同じメモリ インターフェイスが得られます (同じキャッシュと同じ BUS を使用します)。
x64 アーキテクチャにはより多くのレジスタがあり、より簡単に最適化できますが、ポインタがより大きくなり、ポインタを持つ任意の構造を使用すると、より高いメモリ トラフィックになるという事実によって打ち消されることがよくあります。32b と比較して 64b アプリケーションの全体的なメモリ使用量の増加は、約 15 ~ 30% と推定されます。
関連
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] <は<=より速いのか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] なぜJavaでは2 * (i * i)の方が2 * i * iより速いのですか?
-
[解決済み] なぜ[]はlist()よりも速いのですか?
-
[解決済み] ビューは単純なクエリよりも高速ですか?
-
[解決済み】再帰はループより速いことがあるのか?
-
[解決済み] Entity Frameworkのクエリは遅いが、SqlQueryの同じSQLは速い。
-
[解決済み] EBPフレームポインタレジスタの目的は何ですか?
-
[解決済み] なぜ、条件付の手は分岐予測失敗の影響を受けないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] forループの中で<と<=のどちらを使うべきか [閉じた状態].
-
[解決済み] ファイルキャッシュをクリアしてパフォーマンステストを繰り返す
-
[解決済み] Rでdata.frameをマージ/ジョインする最速の方法は何ですか?
-
[解決済み] 原子演算コスト
-
[解決済み] Jaro-Winkler距離とLevenshtein距離の違い?[クローズド]
-
[解決済み] Rでループが遅いのはなぜですか?
-
[解決済み] Laravelは本当にこんなに遅いのか?
-
[解決済み] S3での1ディレクトリあたりの最大ファイル数
-
[解決済み] git ステータスのパフォーマンスを向上させる方法
-
[解決済み] Googleはどうしてそんなに速いのか?