gpt4 book ai didi

java - MemoryUsage max随时间变化

转载 作者:行者123 更新时间:2023-12-01 15:08:17 27 4
gpt4 key购买 nike

我正在编写一些监视代码,以跟踪应用程序中使用的内存。我找到了 MemoryMXBean,它允许我调查内存使用情况。但我无法真正掌握 documentation 中的最大值。 :

max: represents the maximum amount of memory (in bytes) that can be used for memory management. Its value may be undefined. The maximum amount of memory may change over time if defined.

什么情况下最大值可以为空?我认为它总是会被设置,即使我没有在启动时明确设置它。如果我设置了最大值,它会如何随时间变化?有一些相关的thread ,但没有解决问题。

有人能给黑暗带来光明吗?

最佳答案

我不确定最大内存使用量何时可以为空,但我可以知道它随着时间的推移如何变化。最大值表示程序在其生命周期中使用的最大内存,由 Xmx JVM 参数限制。

所以当你的程序启动时(用Xmx说1g),最大值可能是256m。随着程序运行并需要更多内存,JVM 会为其提供更多内存,最大内存也会增加,比如 512m。现在程序已完成处理,所需的内存下降,GC 启动并回收内存。但最大仍为 512m。

最大值永远不会超过 Xmx 参数指定的值。如果它达到限制(在本例中为 1g),它们将保持该值直到程序运行结束。

关于java - MemoryUsage max随时间变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670842/

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