Visual Studio 2010 を使用して小さなプログラムを作成およびデバッグしています。問題は、Visual Studio 2010 からアプリケーションを起動するたびに、アプリケーションのプロセスで 1 秒あたり 100000 の範囲のページ フォールトが発生し、プログラムの速度が 10 倍以上低下することです。生成された実行可能ファイルをファイル システムから起動すると、起動の完了後にページ フォールトが生成されません。これは、デバッグと (すべての最適化が許可されている) リリース ビルドで発生します。例外はスローされません。
プログラム自体は約 200kib でコンパイルされ、実行時に約 10mib のデータを保持し、4gib 以上のメモリを使用できます。実行中のログ フレームワークのメイン スレッドとスレッドのみがあります。データは最初に 1 回読み込まれ、その後は結果のみが新しく割り当てられたメモリに格納され、最後にログに書き込まれます。
多くのディスク アクティビティはないようで、Windows リソース モニタはハード フォールトを示していませんが、タスク マネージャは増え続ける数を示しています。IDE を使用すると多少のパフォーマンスの低下が予想されることは承知していますが、これは少し過剰に思えます。何かアドバイス?
編集:
注: 新しいメモリの割り当て (解除) を減らすことで、カウントを約半分に減らすことができました。
Process Explorer は次のように述べています。
デバッガーに問題があるようです。付けなくても、期待通りに動作します。なぜこれほど大量のページ フォールトが発生し、すべてのビルドの速度が大幅に低下するのかはまだ疑問に思っています。