I would like to control the maximum memory, a process can use in Mac-OS X 10.8. I feel that setting ulimit -v should achieve the goals but doesn't seem to be the case. I tried following simple commands :
ulimit -m 512 java -Xms1024m -Xmx2048m SomeJavaProgram I was assuming that 2nd command should fail as Java Process will start by keeping 1024MB of memory for itself but it passes peacefully. Inside my Sample program, I try allocating more than 1024MB using following code snippet:
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...."); Both these programs get executed without any issues. How can we control the max memory allocation for a program in Mac-OS X?