服务器JVM不保留内存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器JVM不保留内存相关的知识,希望对你有一定的参考价值。

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

答案

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

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

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

保持堆小。

以上是关于服务器JVM不保留内存的主要内容,如果未能解决你的问题,请参考以下文章

带有 UI 和内存泄漏的保留片段

详解Jvm内存结构

详解Jvm内存结构

详解Jvm内存结构

JVM垃圾回收概念

tomcat服务启动失败系统提示错误代码4