gpt4 book ai didi

java - 分析 JVM : Committed vs Used vs free Memory

转载 作者:行者123 更新时间:2023-11-30 06:03:55 36 4
gpt4 key购买 nike

我正在使用 JProfiler 分析部署到 Jetty 服务器的 Java 应用程序。

一段时间后,我得到了这个内存遥测: enter image description here

右边是这个Java进程在Windows任务管理器上的总内存。

  1. 我看到 JProfiler 中提交内存的周期性增加,尽管大多数时候,大部分内存是空闲的(绿色)。为什么提交的内存会增加成这样?
  2. 在拍摄上图的时间点,JProfiler 中的 Committed Memory 显示 3.17GB,但 Windows 任务管理器显示更高 - 4.2457GB。这不是他们都展示的相同内存吗?造成这种差异的原因可能是什么?

最佳答案

如果峰值内存使用量接近总提交内存大小,只要您的 -Xmx 值允许,JVM 就会增加提交内存(操作系统实际为进程保留的内存)。

这有点像填充一个 ArrayList。当后备阵列用完时,它会以越来越大的步长扩大,这样就不必为每次插入调整大小。

至于任务管理器和JVM堆大小的区别,任务管理器中的内存总是大于堆大小,一般很难解释。有关不同措施的解释,请参见此处:

https://technet.microsoft.com/en-us/library/ff382715.aspx

关于java - 分析 JVM : Committed vs Used vs free Memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965967/

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