我想限制JVM使用的最大内存。请注意,这不仅仅是堆,我想限制这个过程使用的总内存。如何设置JVM的最大内存使用量?
回答
使用参数-Xms<memory>
-Xmx<memory>
。分别用于指示Megs和Gig字节的数字后面使用M
或G
。 -Xms
表示最小值和-Xmx
的最大值。
你不应该担心栈泄漏内存(这是非常罕见的)。唯一一次可以让堆栈失去控制的是无限的(或者非常深的)递归。
这只是堆。对不起,一开始没有完全读你的问题。
您需要使用以下命令行参数运行JVM。
-Xmx<ammount of memory>
实施例:
-Xmx1024m
这将允许的存储器为JVM 1GB的最大值。
上面的答案是正确的,你不能优雅地控制java进程分配多少本地内存。这取决于你的应用程序在做什么。
也就是说,根据平台的不同,您可能可以使用某种机制,例如ulimit来限制java或任何其他进程的大小。
只是不要指望它如果达到这个限制就会优雅地失败。本地内存分配失败比Java堆上的分配失败更难处理。应用程序崩溃的可能性相当大,但取决于系统对于保持适合您的进程大小有多关键。
的NativeHeap可以通过-XX被increasded:MaxDirectMemorySize = 256M (默认为128)
我从来没有使用过。也许你会发现它很有用。
我怀疑op是否想要这样:当你从java调用C/C++代码时使用本地内存。 – 2013-05-20 08:59:38
如果您使用直接内存分配缓冲区,则在进行nio调用时也会使用本地内存。 (...和类加载器,以及线程信息....) – stu 2014-03-07 15:07:07
如果要限制对JVM内存(不是堆的大小) 的ulimit -v
要获取JVM和堆内存之间的差异的想法,看看这个优秀的文章 http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the-java-process.html
- 1. 如何为jar文件设置最大jvm内存(XMX)
- 2. 如何在我的Java代码中设置最大的JVM内存大小(-Xmx)?
- 3. 如何设置Redis可以使用的最大内存大小?
- 4. 设置最大内存使用率?
- 5. 如何设置Redis最大内存?
- 6. 如何设置风暴工人的JVM最大堆大小?
- 7. 规格2的JVM内存设置
- 8. 如何让我的程序的最大内存使用量OSX
- 9. Spring引导在64位JVM上使用大量内存
- 10. FlyWay无法获取JVM内存设置
- 11. Spring Boot + Gradle JVM内存设置
- 12. JCS 2.2 - 如何设置内存/索引磁盘缓存的最大大小?
- 13. 如何在glassfish v2中的节点代理上设置jvm内存设置?
- 14. 如何配置SQL Server最大内存使用率
- 15. 设置最大数量
- 16. 如何设置一个非常大的JVM堆大小?
- 17. Nhibernate使用大量内存
- 18. 如何增加JVM内存?
- 19. 如何增加jvm内存
- 20. 如何设置使用gridLayout的JPanel最大或首选大小?
- 21. 如何设置JVM参数
- 22. PS老代内存堆内存使用量:GC设置
- 23. 我可以分配的最大jvm内存
- 24. 使用$ scope变量设置Datepicker最小/最大日期
- 25. 获取java内存不足错误?即使我给了JVM足够的初始和最大内存大小
- 26. 为内存密集型应用程序增加JVM最大堆大小
- 27. 如何最大限度地减少WPF Toolkit图表的内存使用量?
- 28. 限制.NET进程可以使用的最大内存量?
- 29. 使用最大内存效率的增量中值计算
- 30. 确定使用最大内存量(RAM)的进程?
你可能也想看看MaxPermSize。 – pmu 2009-09-30 00:36:01
他询问JVM内存。你所说的是堆的大小。它们都不同 – vsingh 2013-01-31 19:06:42
要重新提供其他评论提到的内容,Xms和Xmx仅配置堆。虽然配置这些变量对非堆空间有间接影响,但是提出问题的人试图确定是否有方法来配置总内存使用量(堆+非堆) – murungu 2014-03-03 16:08:48