Mac-OS X 10.8 でプロセスが使用できる最大メモリを制御したいと考えています。ulimit -v を設定すると目標が達成されるはずですが、そうではないようです。次の簡単なコマンドを試しました:
ulimit -m 512
java -Xms1024m -Xmx2048m SomeJavaProgram
Java プロセスは 1024MB のメモリを保持して開始するため、2 番目のコマンドは失敗すると想定していましたが、問題なく通過します。サンプル プログラム内で、次のコード スニペットを使用して 1024MB を超える割り当てを試みます。
System.out.println("Allocating 1 GB of Memory");
List<byte[]> list = new LinkedList<byte[]>();
list.add(new byte[1073741824]); //1024 MB
System.out.println("Done....");
これらのプログラムは両方とも問題なく実行されます。Mac-OS X でプログラムの最大メモリ割り当てを制御するにはどうすればよいですか?