服务器JVM不保留内存

时间:2018-03-06 12:59:52

标签: java memory-management

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

1 个答案:

答案 0 :(得分:2)

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

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

-XX:MinHeapFreeRatio

保持堆小。