计算 G1GC 中的 TotalHeap 大小

Calculating TotalHeap Size in G1GC

如何在下面的示例中使用 shell 脚本读取 G1 堆使用的变量。我尝试使用 awk 但没有成功

jmap -heap

Heap Usage:
G1 Heap:
regions  = 2048
capacity = 8589934592 (8192.0MB)
used     = 4976717264 (4746.167434692383MB)
free     = 3613217328 (3445.832565307617MB)
57.93661419302225% used

G1 Young Generation:
Eden Space:
regions  = 234
capacity = 3854565376 (3676.0MB)
used     = 981467136 (936.0MB)
free     = 2873098240 (2740.0MB)
25.462459194776933% used
Survivor Space:
regions  = 14
capacity = 58720256 (56.0MB)
 used     = 58720256 (56.0MB)
free     = 0 (0.0MB)
100.0% used

G1 Old Generation:
regions  = 941
capacity = 4676648960 (4460.0MB)
used     = 3936529872 (3754.167434692383MB)
free     = 740119088 (705.8325653076172MB)
84.17415772852877% used

能否请您尝试以下。我正在使用 exit 所以当找到 Heap Usage 的第一个匹配项然后找到字符串 used 的第一个匹配项时,它将打印请求的值并立即从程序中退出,所以这也会更快。

awk '/Heap Usage:/{found=1;next} found && /used/{print ;exit}'  Input_file