グラフィックを多用するビジュアルコントロールを含むサードパーティの.Net2アセンブリを参照する.Net4WinFormsアプリがあります。誤ってAnyCpuからx86コンパイルモードに切り替えたときに、アプリの視覚的パフォーマンスが大幅に向上することに気づきました。私の開発リグはx64Windows7です。コントロールがグラフィカル要素をレンダリングしている場合、改善は少なくとも2倍になります。
これは既知の事実ですか、それとも私は何か間違ったことをしていますか?
グラフィックを多用するビジュアルコントロールを含むサードパーティの.Net2アセンブリを参照する.Net4WinFormsアプリがあります。誤ってAnyCpuからx86コンパイルモードに切り替えたときに、アプリの視覚的パフォーマンスが大幅に向上することに気づきました。私の開発リグはx64Windows7です。コントロールがグラフィカル要素をレンダリングしている場合、改善は少なくとも2倍になります。
これは既知の事実ですか、それとも私は何か間違ったことをしていますか?
それについては、次の 2 つの記事を参照してください。
AnyCPU Exes は通常、価値があるよりもトラブルが多い
Visual Studio: 64 ビット バージョンがないのはなぜですか? (まだ)
64 ビット コードに関する次の記事も参照してください。、開発者がコードを64ビット用に最適化したため、たとえばPaint.NETは64ビットモードでより適切に機能することが明確に述べられています。
したがって、あなたが何か間違ったことをしているとは思いませんが、使用しているサード パーティの .NET アセンブリは、特に 64 ビット プロセスで実行する場合に改善される可能性があります。
これは私を驚かせません。アプリケーションを「任意の CPU」にコンパイルするように設定すると、CLR はアプリケーションを生成し、ユーザーのマシンのジターは、アーキテクチャに最適になるようにさらにコンパイルする必要があります。これを「x86」に設定すると、開発コンパイラはアプリケーションを x86 マシン用にコンパイルし、クライアントのジッターの負荷を軽減します。