我想限制JVM使用的最大内存。注意,这不仅仅是堆,我想限制这个进程使用的总内存。
发布于 2009-09-29 17:32:35
使用参数-Xms<memory>
-Xmx<memory>
。在数字后面使用M
或G
分别表示兆字节和千兆字节。-Xms
表示最小值,-Xmx
表示最大值。
发布于 2013-02-01 05:28:27
如果您想限制jvm的内存(而不是堆大小),可以限制-v
要了解jvm和堆内存之间的区别,请参阅这篇优秀的文章http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html
发布于 2009-09-29 19:47:18
上面的答案是正确的,你不能优雅地控制一个java进程分配多少本机内存。这取决于您的应用程序正在做什么。
也就是说,根据平台的不同,您可以使用某种机制,例如ulimit来限制java或任何其他进程的大小。
只是不要期望它会在达到这个极限时优雅地失败。本机内存分配失败比java堆上的分配失败更难处理。应用程序很有可能会崩溃,但这取决于它对系统的重要性,以保持较小的进程大小,这可能仍然适合您。
https://stackoverflow.com/questions/1493913
复制相似问题