Answers:
使用参数-Xms<memory>
-Xmx<memory>
。在数字后面使用M
或G
分别表示字节的兆位和千兆位。-Xms
表示最小值和-Xmx
最大值。
-Xmx524M
,该过程占用了1.2 GB的RAM。(?)
您不必担心堆栈泄漏的内存(这种情况很少见)。唯一使堆栈失控的时间是无限(或非常深)的递归。
这只是堆。抱歉,起初没有完全阅读您的问题。
您需要使用以下命令行参数运行JVM。
-Xmx<ammount of memory>
例:
-Xmx1024m
这将为JVM最多提供1GB的内存。
-XX:MaxDirectMemorySize
。并不是说我已经进行了大量分析以确保但仍然;)
MaxDirectMemorySize
唯一影响NIO缓冲区。JVM使用所有其他各种本机内存。
如果要限制jvm的内存(而不是堆大小),则ulimit -v
要了解jvm和堆内存之间的区别,请看这篇出色的文章 http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the- java-process.html
ulimit
Linux命令吗?我做了一个快速的Google搜索,没有发现它ulimit
和JVM 之间有任何关系。Y
可以通过-XX:MaxDirectMemorySize = 256M来增加NativeHeap(默认值为128)
我没用过 也许您会发现它很有用。