【发布时间】:2012-08-29 10:25:25
【问题描述】:
我想控制最大内存,一个进程可以在 Mac-OS X 10.8 中使用。我觉得设置 ulimit -v 应该可以实现目标,但似乎并非如此。我尝试了以下简单的命令:
ulimit -m 512
java -Xms1024m -Xmx2048m SomeJavaProgram
我假设第二个命令应该失败,因为 Java 进程将通过为自己保留 1024MB 内存开始,但它会平静地通过。在我的示例程序中,我尝试使用以下代码 sn-p 分配超过 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 中程序的最大内存分配?
【问题讨论】:
-
Narinder Kumar,尝试在分配的数据中写入一些内容,每 4096 字节至少写入一次,然后检查 ulimit 是否会限制新测试。
标签: macos memory memory-management