我正在运行一个 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
首先,我的代码将显示哪个内存。Old、Eden 或 Survivor。我认为 Old..mi rgt ??
在特定时间,我观察到与 jstat 旧内存利用率相比,我的代码给了我不同的输出。像这里 jstat old 显示大约 17% 而我的代码显示 20%。这有什么原因吗??