如何设置JVM的最大内存使用量?

问题

我想限制JVM使用的最大内存。注意,这不仅仅是堆,我想限制此进程使用的总内存。


#1 热门回答(91 赞)

使用arguments-Xms<memory>``-Xmx<memory>。使用MG之后的数字分别表示字节的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