これは問題です。私たちのプロダクション環境(ASP.Net)では、私たちのサーバーは膨大な量のメモリと多数のユーザー/セッションを持っています。私のコンピュータには8ギガがあり、私は唯一のユーザーです。プロダクションでは、(ほとんど)System.OutOfMemoryException
を取得しています。.Net CLRメモリの使用を制限する
この背景情報は、CLRに私がメモリのギグ以下しか持っていないと思うようにすることができますか? IIRCには、Java用にこれを行うためのコマンドラインオプションがあります。
もう1つの選択肢は、メモリーをいっぱいにしてメモリーの少ない状態をシミュレートするために、いくつかの大きなオブジェクトを作成することです。しかし、アセンブリを変更する必要があり、巨大なオブジェクトがディスクにキャッシュされる可能性があります。
おすすめです?または他のオプション?
これはすばらしいアイデアです。実際には、すでにVirtualBoxインスタンスを実行しています!私はその可能性を考えたことはありません。あなたは勝つ! – Amy
これは単純なJVM引数を置き換えるための厄介な.NETソリューションのようです。はい、OSは仮想メモリの低レベル処理を処理しますが、どのアプリケーションがメモリ優先度をより細かく制御するかについてはどうでしょうか。はい、各アプリケーションは同じ仮想アドレス空間を取得しますが、アプリケーションAが消費するメモリ量を制限したいので、OSにはアプリBに十分な空きがあります。 –
@Kelly French:私の答えは.NETやJavaとは関係ありません。 Java仮想マシンではなく仮想マシンを使用して、メモリリソースの少ないOSをテストできる環境を作成することを示唆しています。答えは、プログラミング言語、フレームワーク、またはオペレーティングシステムに固有のものではありません。仮想マシンについて言及するとき、私はこれを意味します:http://en.wikipedia.org/wiki/Virtual_machine#System_virtual_machines –