0

64 ビット CPU で 32 ビット プログラムを実行する場合、基になるハードウェアがメモリと CPU レジスタで 32 ビット値を使用して整数を格納すると想定できますか?

これらの設定を考えると:

  • Intel i5 + Windows 32 ビット + 32 ビット アプリケーション
  • Intel i5 + Windows 64 ビット + 32 ビット アプリケーション

それぞれの設定の欠点を教えてください。CPU がレジスタの値の停止を無視するために余分な作業を行うため、2 番目のものを使用すると効率が低下しますか?

4

2 に答える 2

2

x86_64 プロセッサが 32 ビット コードを実行する場合、実質的に i686 モードで実行されます。これはすべてハードウェアで実現されるため、パフォーマンスが低下することはありません。

ユーザー空間の 32 ビット プログラムは、オペレーティング システムが 32 ビットであろうと 64 ビットであろうと、「32 ビット モード」で実行されるため、動作は同じです。

唯一の潜在的な欠点は、プログラムが 64 ビット OS にデフォルトでインストールされていない一部の 32 ビット ライブラリに動的にリンクする必要がある場合があることです。この種のシナリオは、プログラムが外部ライブラリに動的にリンクすることがはるかに一般的な Linux でより一般的です。Windows で考えられる唯一の例は、プログラムが Visual C++ ランタイム ライブラリを必要とする場合、その 32 ビット バージョンをインストールする必要があることです (別のプログラムがそれを必要とする場合は、64 ビット バージョンと一緒にインストールする必要があります)。つまり、64ビットのセットアップでさらに多くのものをインストールする必要があるかもしれません。

また、実際の OS は 64 ビット セットアップでより多くのメモリを消費する可能性がありますが、32 ビット システムの欠点の 1 つは、システム全体のメモリ サイズが 4GB に制限されていることです (または、一部のメモリ スペースがハードウェアにマップされているため、実際には約 3.5 GB です)。

于 2013-03-27T15:21:39.517 に答える
0

64 ビット ナレッジ ベース: Win32 および Win64 でアプリケーションがアクセスできるメモリの量はどれくらいですか?

于 2013-03-27T16:38:14.497 に答える