2009-07-08 11 views

答えて

6

いくつかの計算量の多い(数値処理の)アプリケーションの方がはるかに高速です(私の経験では4倍)。最も良いことは、純粋に管理されたケースで無料で提供されることです。メリットを得るために何かを再コンパイルする必要はありません。また、x64 JITの方がより積極的な最適化を行っていると聞いています。

最大の欠点は、処理中に32ビットCOMコンポーネントを読み込めないことが考えられます。

5

あなたのアプリケーションは、より速く実行される場合と実行されない場合があります。いくつかのアプリケーションで改善が見られましたが、他のアプリケーションでは改善が見られませんこれは、アプリケーションが64ビット(演算)演算をどれだけ利用するか、x64が使用するより大きいデータとコードをオフセットして実行する前に命令とデータキャッシュにロードする必要があるかによって異なります。

http://blogs.msdn.com/b/joshwil/archive/2006/07/18/670090.aspx

これは読む価値があります。それは古いです(.NET 2.0)が、まだまだ適用されます。ポインタ・サイズ、COM相互運用機能など:

Migrating 32-bit Managed Code to 64-bit

それも、x64の上でCLRが2GBの単一のオブジェクトのサイズ制限があることを知っても価値があります。これは99%のシナリオでは問題にはなりませんが、おそらくx64に移行する場合は、大きなデータセットを扱う可能性があるからです。より多くの議論についてはこちらをご覧ください:

Are C# Strings (and other .NET API's) limited to 2GB in size?

Soがアプリケーションが32ビット・メモリに収まらないデータを使用したり、64ビット・オペレーションを頻繁に使用したりしない限り、何らかの改善が見られない場合があります。

他の欠点は、x64アプリケーション用のVisual Studioは、いくつかの制限があることである。

  • 編集を続行、64ビットのデバッグに は使用できません。

  • ネイティブコードからマネージコードへの 、またはその逆のコード( )を64ビットコードで呼び出す混在モードでデバッグすることはできません。

参照:http://msdn.microsoft.com/en-us/library/ms184681(VS.80).aspx

注:64ビットのC++コンパイラがデフォルトでインストールされていません。インストール時にそれらを選択する必要があります。

私はx64アプリケーションを自分自身で最適化しているため、これも見つけました。

は「移植およびAMD64用64ビットWindows上のアプリケーションの最適化...」

http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/AMD64_PortApp.doc

は良いコンパイラスイッチ上のポインタなどがたくさんあります。

+2

"64ビットコンパイラはデフォルトでインストールされていません":OPは.NETアプリケーションを意味しています。これは、ネイティブC++コンパイラでのみ有効で、VB.NET/Cでは使用できません。 –

+0

これはサイドノートでした。私は上記でそれを明らかにした。 –

1

64ビットのアプリケーションは、常に32ビットより高速に動作するとは限りません。それについて協議以下 2件のブログ記事:
http://blogs.msdn.com/rmbyers/archive/2009/06/08/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

大きなポインタは、より多くのメモリと キャッシュの消費量、および利用可能なCPUキャッシュの バイト数を32ビットと64の両方に同じ されることを意味します-bit プロセス。

http://blogs.msdn.com/ricom/archive/2009/06/10/visual-studio-why-is-there-no-64-bit-version.aspx

は、 障害多分、間接的な方法以外でのページで をお手伝いをするつもりはないプロセスのための64ビットのアドレス空間と、それは間違いなく 直接の方法であなたを傷つけるでしょうあなたのデータは です。対照的に、64ビットの オペレーティングシステムは、多くのお手伝いをすることができます! 64ビットOSで32ビットアプリケーションとして実行している場合は、4G のアドレススペースをすべて取得し、使用することなく物理メモリ( のRAMがある場合)によってバッキングされる になる可能性があります64ビット ポインタ。

関連する問題