我们正在使用AppDynamics和VisualVM监视我们的应用程序堆内存使用情况。我们在这些问题中看到了类似的图形-this和this。
红色框显示空闲的系统堆使用情况-仅当系统处于空闲状态时才会看到峰值,而在未部署任何应用程序时甚至会看到峰值。 绿色箭头指向处于使用状态的实际应用程序-使用系统时,我们看到的堆使用情况报告的相对较少。根据其他SO问题的澄清,如果我们说这是由于垃圾回收造成的,为什么在应用程序使用期间不会出现GC?当系统空闲时,我们会在AppDynamics中看到诸如java.land.String,byte [],int []等系统对象的报告,但是如何找到谁来负责创建它们呢?同样,在空闲状态下进行的堆转储中,当服务器具有专用的-Xmx4g配置时,在使用的500MB内存中仅看到200MB。我们应该如何理解这些观察?