Я хотел бы узнать, каков общий размер кучи, используемой в определенный момент Java-процессом, и мне нужно использовать jmap.
Вывод jmap -heap <pid>
дает мне что-то вроде этого:
Attaching to process ID 2899, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 14.2-b01
using thread-local object allocation.
Parallel GC with 2 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1258291200 (1200.0MB)
NewSize = 1048576 (1.0MB)
MaxNewSize = 4294901760 (4095.9375MB)
OldSize = 4194304 (4.0MB)
NewRatio = 8
SurvivorRatio = 8
PermSize = 16777216 (16.0MB)
MaxPermSize = 67108864 (64.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 119013376 (113.5MB)
used = 117277608 (111.84464263916016MB)
free = 1735768 (1.6553573608398438MB)
98.54153536489882% used
From Space:
capacity = 131072 (0.125MB)
used = 81920 (0.078125MB)
free = 49152 (0.046875MB)
62.5% used
To Space:
capacity = 131072 (0.125MB)
used = 0 (0.0MB)
free = 131072 (0.125MB)
0.0% used
PS Old Generation
capacity = 954466304 (910.25MB)
used = 80791792 (77.04905700683594MB)
free = 873674512 (833.2009429931641MB)
8.46460390077846% used
PS Perm Generation
capacity = 57671680 (55.0MB)
used = 41699008 (39.76727294921875MB)
free = 15972672 (15.23272705078125MB)
72.30413263494319% used
Можно ли использовать формулу для этих значений, чтобы узнать общий объем используемой памяти?
Другие предложения о том, как я могу это выяснить в Linux, приветствуются, но над ними предпочтительнее jmap.
Спасибо