2

私は、非常に (非常に) 大規模なデータセットでメモリ不足エラーを予測どおりに生成するアプリケーションを使用しています。アプリのメモリ管理を最適化することで問題を解決しようとしていますが、問題の非常に大規模なデータセットには非常に長い時間が必要です。テストサイクルを反復して問題を経験的に見つけるのが難しいことを (日) 実行する必要があります。

アプリケーションのパフォーマンスの問題はしばらく脇に置いておきます。これは、正しいアプリケーションの動作の次のタスク リストです。

非常に大きなデータセットでのみ自然に発生する OutOfMemory エラーを、代わりに小さなデータセットで強制的に発生させるために、Visual Studio でデバッグ モードで実行しているときにアプリケーションが使用できるメモリの量を制限する簡単な方法はありますか?

4

4 に答える 4

3

プログラムの起動時に、他のことをする前に、大きなチャンクを自分で割り当てるだけです。

約 500MB の空き領域を確保するには (32 ビット プロセスの場合):

byte[] OutOfMemory = new Byte[int.MaxValue - ((1024 ^ 2) * 500)];
于 2009-12-04T22:14:33.683 に答える
2

最初に大量のメモリを単純に割り当てて、プログラムの実行中にそれを保持しようとしましたか?

これにより、残りのアプリケーションで使用できるメモリが減少します。

于 2009-12-04T22:14:50.610 に答える
0

I'd get a memory profiler and try and re-create the issue artificially before it bites you in production. ANTS memory profiler is pretty good for that:

http://www.red-gate.com/products/ants_memory_profiler/index.htm

It's expensive but the trial would probably do for that issue.

于 2009-12-04T22:37:48.090 に答える
0

機能するはずの 1 つのトリックは、プログラムの開始時に、より大きなバッファーを割り当てることです。GCされないように参照を保持している限り、必要なものが得られます。

于 2009-12-04T22:14:44.540 に答える