问题
我想限制JVM使用的最大内存。注意,这不仅仅是堆,我想限制此进程使用的总内存。
#1 热门回答(91 赞)
使用arguments-Xms<memory>``-Xmx<memory>
。使用M
或G
之后的数字分别表示字节的Megs和Gigs .-Xms
表示最小值和最大值4333232。
#2 热门回答(28 赞)
你不必担心堆栈泄漏内存(这是非常罕见的)。只有无限(或非常深)递归才能使堆栈失控。
这只是堆。对不起,首先没有完整地阅读你的问题。
你需要使用以下命令行参数运行JVM。
-Xmx<ammount of memory>
例:
-Xmx1024m
这将允许JVM最多1GB的内存。
#3 热门回答(11 赞)
如果要限制内存为jvm(不是堆大小)ulimit -v
要了解jvm和堆内存之间的区别,请查看这篇优秀的文章http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html