どのようなアプリケーション(CPU集約型、IO集約型、CPU / IOアプリケーションの適切な混合)が、32ビットではなく64ビットハードウェアの64ビットOSに配置する価値があるかどうかを把握しようとしています。 RAMを4GB以上に拡張できないOSはありますか?
答え1
TL; DR; Intel / AMD CPUでは、32ビットモードの速度は64ビットモードとほぼ同じです。
より詳細な答えは次のとおりです。
それは多くのものに依存します:
非パフォーマンス:より大きなアドレス空間にアクセスできます。これは良いことです。
このアドレス空間は、次のようなさまざまな目的に使用されます。
- IOデバイスマッピング(例:すでに6GiBに到達できるグラフィックカードバッファ)
- 物理メモリ(PEAがないと仮定すると、最大4GiB RAM制限が発生します)
- 仮想メモリの場合(安全のためにプログラムを半ランダムにここにマップします。したがって、数GBの空き容量を維持します。つまり、32ビットと一部のPCI [e]スペースがある場合はRAMに使用しないでください。512MiB以上IOを使用すると、マッププログラムのための十分なアドレス空間を予約し、反ランダムなセキュリティを維持できます。http://en.wikipedia.org/wiki/ASLRアドレス空間レイアウトのランダム化のための良い出発点になります。
4つの属性:
- 64ビットコードは、32ビットポイントサイズの2倍のポインタを使用します。これにより、プログラムが大きくなり、最終的にバッファなどの他の操作に少ないメモリが使用されます。
- より大きなプログラムにはより多くのキャッシュが必要です。それ以外の場合、キャッシュの効率が低下します。
AMDまたはIntel CPUのみ:
- amd64モードでは、32ビットモードより2倍のレジスタが得られます。 x86アーキテクチャは比較的レジスタ数が少ないため、多くのメモリアクセスが必要であり、これは悪いことです。プログラムがメモリにバインドされていないと、作業速度が大幅に向上する可能性があります。
- Amd64(IntelおよびAMD CPU用の64ビットモード、Intelと混同しないでください。)IA64ビットパターンが大きく異なる)のみサポートします。実行ビットなし64ビットモードで実行している場合は、そのページテーブルにあります。セキュリティのためにもこれが欲しいです。
それからあなた*のために平均プログラムとamd64:速度変更はありません。長所と短所は、同じように大きく、互いに相殺されるように見えます。これは、32ビット版と64ビット版の両方のチップに十分なレジスタを持つPower PC 64などの他のアーキテクチャではそうではありませんでした。
最後に、実用的な理由は次のとおりです。
- 4GiB以上でメモリを拡張できると思われる場合は、常に64ビットバージョンを使用してください。
- 複数のオペレーティングシステムがインストールされている場合は、すべてのオペレーティングシステムで同じバージョンを使用して作業を単純にしてください。 (これはすべて64ビットバージョンを使用していることを意味します。)
- 安全のためにアドレス空間のランダム化を含むオペレーティングシステムを使用している場合は、RAMが512MiB以上のすべてのノードでそれを使用してください。 (読み取り:すべての最新のオペレーティングシステムで動作します)。
答え2
簡単に答えると、4GBのRAMを最大限に増やさない限り、32ビットは通常64ビットと同じ性能を得ることができます。実際、ほとんどの32ビットアプリケーションはメモリスペースが少ないため、32ビットパフォーマンスは64ビットよりも優れている可能性があります。 4GB RAMの後、64ビットは32ビットよりはるかに優れていますが、それ以前はどちらにでも行くことができ、パフォーマンスの違いはあまりありません。