我正在寻找一种方法来查找给定正在运行的 JVM 进程的 HEAP 统计信息。
我已经阅读了与它相关的SO 文章。
首先,我从来不理解堆大小和使用堆大小之间的区别(因为最大堆大小意味着总堆大小意味着分配给 JVM 的总堆),如果有人可以解释它会有所帮助......
现在根据文章使用的堆是
Used heap would be the sum of all the fields that end with
"U" - S0U, S1U, EU, OU (again, except metaspace)
我尝试总结该值,但它似乎与 Visual VM 中的 find 相匹配。
例如,对于以下 JStat 输出
{"S0C"=>37440.0, "S1C"=>37440.0, "S0U"=>24834.0, "S1U"=>0.0, "EC"=>187264.0, "EU"=>68714.3, "OC"=>1310720.0, "OU"=>25368.3, "MC"=>44428.0, "MU"=>41513.4, "CCSC"=>6608.0, "CCSU"=>6200.2, "YGC"=>10.0, "YGCT"=>1.194, " FGC"=>2.0, "FGCT"=>0.047, "GCT"=>1.241}
使用的 HEAP 大小为 118916600 B 而在 Visual VM 中我将其视为 121770608 B
知道有什么区别吗?