0

新しい64ビットコンピューターを入手しましたが、32ビットと64ビットの違いを理解しようとしています。64ビットの依存関係を使用して構築されたアプリケーションは64ビットでのみ実行できることを理解していますが、32ビットの依存関係を使用して構築されたアプリケーションは32ビットシステムと64ビットシステムの両方で実行できます。

しかし、他に違いはありますか?一部のプログラムには、ダウンロードできる2つの異なるWindowsバージョンがあります。1つは64ビット用、もう1つは32ビット用です。なぜ彼らは2つの異なるタイプを提供するのですか?プログラムを64ビットシステムで実行するために64ビットの依存関係を持つプログラムをコンパイルするための速度の向上はありますか?

4

3 に答える 3

1

速度以外に、一部のプログラムには選択の余地がありません。ホスト オペレーティング システムのビット数と正確に一致する必要があります。

良い例は、シェル拡張をインストールする TortoiseSVN です。シェル拡張は、他のプロセスにロードされる DLL です。したがって、TortoiseSVN は、シェル拡張を提供したい場合、x64 システムで 64 ビット DLL を提供する必要があります。

ドライバーは、この 2 番目の例です。

速度に関しては、もちろん違いがあります。それは、プログラムが何をするかに大きく依存します。プログラムが高いパフォーマンスを必要としない場合、x64 実行可能ファイルを提供しても役に立たず、ユーザーと同様に両方の開発者にとっても時間の無駄です。

64 ビット OS で 32 ビットの場合のパフォーマンスの違いの原因は次のとおりです。

  1. モード切り替えによるカーネル呼び出しコストの増加
  2. より多くのレジスタ、より大きなコード サイズ: 計算集約型プログラムの場合、これはネイティブ 64 ビット アプリに有利に働きます。他のタイプのアプリ、またはビジネス スタイルの Web アプリケーションの場合、コードとポインターのサイズが大きくなると、最終的な損失が発生する可能性があります (32 ビットよりも 64 ビットの方が遅いです!)
  3. 3GB 以上のメモリへのアクセス。2012 年の時点では、これは明らかにめったに発生しません。データベース、Photoshop などを考えてみてください。
于 2012-10-17T22:54:46.030 に答える
0

パフォーマンスはほとんどの言語でほぼ同じです。

64ビットを使用する主な理由は、アドレス可能なメモリです。A32ビットプロセスは2GBのデータにしかアクセスできませんが、64ビットプロセスは18兆バイトにアクセスできます(これは、マシンに搭載できるRAMの量よりもはるかに多い量です)。

于 2012-10-18T07:45:28.030 に答える
0

usr が言ったように、速度の向上はアプリケーションの機能によって異なります。しかし基本的に、64 ビット CPU は 32 ビット CPU の 2 倍のデータを同じ時間で処理できます。ただし、そのための機械命令は 64 ビット プロセッサに固有であるため、既存のネイティブ プログラムを (少なくとも) 再コンパイルして利点を示す必要があります。

x86_64 の場合、メモリ ポインタも 32 ビット幅ではなく 64 ビット幅になりました。これは、プログラムでより多くのメモリをアドレス指定できることを意味します。ただし、コードはディスクとメモリで約 2 倍のスペースを占有します。メモリが不足している 64 ビット システムを使用している場合、スワッピングがさらに悪化する可能性があります。

于 2012-10-17T23:13:26.180 に答える