gpt4 book ai didi

java - Java 如何使用 XMX 和 XMS 内存?

转载 作者:搜寻专家 更新时间:2023-11-01 03:06:29 26 4
gpt4 key购买 nike

我有 Tomcat 配置了 XMS=XMX(均为 4G)。

但是 - 如果我将 XMS 设置为 1G 会怎么样?

据我了解 - JVM 将使用提供的 1G 内存启动 Tomcat。然后,如果应用程序需要更多 - JVM 会在一段时间内将其增加到 4G。要提升它 - Java 必须运行一些操作(调整大小、在内存中重新分配页面?) - 这需要一些时间和 CPU 资源,对吗?

Tomcat的应用程序不需要那么多内存后发生了什么? Java 将再次运行操作以减少已用内存?

谢谢。

附言为什么我要问 - 使用 XMS=1GXMX=4G Apache Jmeter 给出的结果要少得多(吞吐量Average),这比我使用 XMXXMS 都是 4G 启动 Tomcat 时要好。

最佳答案

是的,JVM 必须分配更多内存并重新安排所有堆空间(Eden、from、to、old 和 PermGen)以适应新内存。如果您计划让您的 webapp 使用一定数量的堆空间,那么从性能方面来说,您最好预先分配整个堆空间。

JVM 永远不会释放它从操作系统中占用的内存。因此,如果您需要 4GiB 堆并且 JVM 最终占用了它,您的堆将保持在 4GiB 直到 JVM 终止。

关于java - Java 如何使用 XMX 和 XMS 内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com