I am trying to measure my application memory foot print pragmatically. I am using java.lang.management class to calculate this
val heap = ManagementFactory.g
To find the memory usage as provided by top
, check the OS-level statistics for the process.
On Linux you can do this by reading /proc/self/stat
or /proc/self/status
.
More about proc pseudo-file system.
Note that Application footprint is a different concept. From JVM point of view Java application footprint is roughly the amount of space occupied by Java objects (Heap) and Java classes (Non-heap). From OS point of view there are much more things to count, including JVM itself and all the components of Java Runtime that make your application work.
The memory used by the whole Java process include