服务器JVM不保留内存

问题描述 投票:0回答:1

服务器和客户端JVM之间的区别之一是服务器JVM将尝试使用并保留所有可用内存(最多配置或默认Xmx),但客户端JVM对用户计算机是“仁慈的”并且不会保留未使用的内存(源? )。 在具有大量内存和多个CPU的服务器上的服务器'JVM将默认为chousen,导致相当大的默认Xmx和'服务器内存复用策略'。 这将导致小型java应用程序慢慢占用4G的内存,而在实际中它只需要100M。 我怎么能改变'服务器JVM内存复用策略'来扮演'客户端'JVM,但不降级其他'服务器JVM性能改进'?

java memory-management
1个回答
2
投票

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

Java 9文档中的Performance Tuning Examples部分建议使用

-XX:MaxHeapFreeRatio=10 -XX:MinHeapFreeRatio=5

保持堆小。

© www.soinside.com 2019 - 2024. All rights reserved.