首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器JVM不保留内存

服务器JVM不保留内存
EN

Stack Overflow用户
提问于 2018-03-06 20:59:52
回答 1查看 54关注 0票数 0

服务器和客户端JVM之间的区别之一是,服务器JVM将尝试使用并保留所有可用内存(直到配置的或默认的Xmx),但客户端JVM对用户机器“仁慈”,不会保留未使用的内存(源?)。

在具有大量内存和多个CPU的机器上,默认情况下将选择“server”JVM,从而导致相当大的默认Xmx和“server memory retantion policy”。

这将导致小型java应用程序缓慢地抓取4G内存,而实际上它只需要100M。

如何将“服务器JVM内存保留策略”更改为“客户端”JVM,而不是降级其他“服务器JVM性能改进”?

EN

回答 1

Stack Overflow用户

发布于 2018-03-06 21:25:50

假设使用Java,Java9。您可以使用-Xmx设置堆大小的硬限制,或者如果-XX:MaxHeapFreeRatio未使用足够比例的堆,则指示HotSpot将内存返回给操作系统(在这种情况下,您还应该设置-XX:MinHeapFreeRatio)。

Java9文档中的Performance Tuning Examples部分建议

代码语言:javascript
复制
-XX:MaxHeapFreeRatio=10 -XX:MinHeapFreeRatio=5

用于保持堆较小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49131483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档