Monitoring Gross Memory Usage
The JDK provides two methods for
monitoring the amount of memory used by the runtime system. The
methods are freeMemory( )
and
totalMemory( )
in the
java.lang.Runtime
class.
totalMemory( )
returns a long
, which is the number of bytes
currently allocated to the runtime system for this particular Java VM
process. Within this memory allocation, the VM manages its objects
and data. Some of this allocated memory is held in reserve for
creating new objects. When the currently allocated memory gets filled
and the garbage collector cannot allocate sufficiently more memory,
the VM requests more memory to be allocated to it from the underlying
system. If the underlying system cannot allocate any further memory,
an OutOfMemoryError
error is thrown. Total memory
can go up and down; some Java runtimes can return sections of unused
memory to the underlying system while still running.
freeMemory( )
returns a
long
, which is the number of bytes available to
the VM to create objects from the section of memory it controls
(i.e., memory already allocated to the runtime by the underlying
system). The free memory increases when a garbage collection
successfully reclaims space used by dead objects, and also increases
when the Java runtime requests more memory from the underlying
operating system. The free memory reduces each time an object is
created, and also when the runtime returns memory to the underlying
system.
It can be useful to monitor memory usage while an application ...
Get Java Performance Tuning now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.