我正在运行一款Java应用程序,观察到以下情况:
通过代码计算内存利用率:
long freeMemory = Runtime.getRuntime().freeMemory();
this.memUsage = 100f - (freeMemory*100)/this.maxMemory;
where
instance.maxMemory = Runtime.getRuntime().maxMemory();
时间戳 S0 S1 E O P YGC YGCT FGC FGCT GCT
2849.6 0.00 84.80 93.14 16.95 60.00 483 140.140 8 3.649 143.789
首先,我的代码将显示哪个内存。老年代,伊甸园或幸存者。我认为是老年代。我是正确的吗?
在特定的时间,我注意到我的代码给我不同的输出与 jstat old 的内存利用率相比。就像这里 jstat old 显示约 17%,而我的代码显示 20%。有什么原因吗?