This MXBean interface allows monitoring of the current and peak memory usage for a single memory pool. Typical Java VM implementations segregate garbage-collected heap memory into two or more memory pools based on the age of the objects. Obtain a List of MemoryPoolMXBean instances with ManagementFactory.getMemoryPoolMXBeans( ) . getName( ) and getType( ) return the name and type of each pool. getUsage( ) and getPeakUsage( ) return the current and peak memory usage for the pool in the form of a MemoryUsage object. If isUsageThresholdSupported( ) returns TRue , you can use setUsageThreshold( ) to define a memory usage threshold. The MemoryPoolMXBean then keeps track of threshold crossings and issues notifications through the javax.management.NotificationEmitter API. You can register a javax.management.NotificationListener to receive these notifications. (Note that the javax.management package is not covered in this book.) Use setCollectionUsageThreshold( ) instead to receive notifications when memory usage exceeds a specified threshold after a garbage collection pass. public interface MemoryPoolMXBean { // Public Instance Methods MemoryUsage getCollectionUsage ( ); long getCollectionUsageThreshold ( ); long getCollectionUsageThresholdCount ( ); String[ ] getMemoryManagerNames ( ); String getName ( ); MemoryUsage getPeakUsage ( ); MemoryType getType ( ); MemoryUsage getUsage ( ); long getUsageThreshold ( ); long getUsageThresholdCount ( ); boolean isCollectionUsageThresholdExceeded ( ); boolean isCollectionUsageThresholdSupported ( ); boolean isUsageThresholdExceeded ( ); boolean isUsageThresholdSupported ( ); boolean isValid ( ); void resetPeakUsage ( ); void setCollectionUsageThreshold (long threhsold ); void setUsageThreshold (long threshold ); } |