私は小さな PerformanceTest プログラムを書いていて、テスト中に使用できるメモリを人為的に制限しようとしています。最大約 100 GB の多重解像度画像を処理している間、実行に数時間かかるテストもあります。
スレッドごとに制限を設定するのが理想的ですが、これはうまくいかないと思います。テストは、別のプロセスまたは別の AppDomain で実行されます。ARM と ETW を使用して AppDomain のリソースを監視する (制限はしない) 方法を知っており、プロセス レベルで MaxWorkingSet を設定しようとしましたが、システム メモリが圧迫されるまで効果がありません。
もちろん、VM でテストを実行したり、ブート オプションで Windows メモリを制限したりするなど、これを達成するための他の方法と回避策があります。大量のメモリを割り当てる 2 番目のプロセスを開始します。
システムに空き物理メモリがある場合でも、プロセス/AppDomain が使用できる物理メモリを人為的に制限する方法はありますか? 仮想メモリも制限することは可能でしょうか?