java.lang.management
Interface MemoryPoolMXBean
Provides access to information about one of the memory
resources or pools used by the virtual machine. Instances
of this bean are obtained by calling
ManagementFactory.getMemoryPoolMXBeans()
. One
bean is returned for each memory pool provided.
The memory pool bean allows the usage of the pool to be
monitored. The bean can provide statistics on the current
and peak usage of the pool, and on the threshold levels the
pool uses.
getUsage()
returns an approximation of the current
usage of the pool. Calls to this method are expected to be
generally quick to perform; if the call is expensive, the
documentation of the bean should specify so. For memory
pool beans that represent the memory used by garbage
collectors, the usage level includes both referenced and
unreferenced objects.
getPeakUsage()
and
resetPeakUsage()
enable
the retrieval of the peak usage level and setting it to the
current usage level, respectively. Initially, the peak usage
level is relative to the start of the virtual machine.
Memory pools may also include optional support for usage thresholds.
The usage threshold is a particular level of memory usage. When this
value is crossed (the current memory usage becomes equal to or greater
than this threshold level), the usage threshold count is increased.
This feature is designed for monitoring the trend in memory usage.
Support for a collection usage threshold is also provided, for
particular garbage collectors. This is used to monitor the amount
of memory left uncollected after a garbage collection cycle. There
is no need to make special garbage collection runs to support this;
the level following collection just needs to be monitored.
getCollectionUsage
public MemoryUsage getCollectionUsage()
Returns memory usage statistics after a best-effort attempt
has been made to remove unused objects from the pool. This
method is designed for use by the pools of garbage collectors,
in order to monitor the amount of memory used after collections.
It will return null
if such functionality is
unsupported by the memory pool represented by this bean.
- the memory usage of the memory pool after the most
recent garbage collection cycle, or
null
if this operation is not supported.
getCollectionUsageThreshold
public long getCollectionUsageThreshold()
Returns the collection usage threshold level in bytes. This
value is initially zero.
- the collection usage threshold in bytes.
getCollectionUsageThresholdCount
public long getCollectionUsageThresholdCount()
Returns the number of times the usage level has matched or
exceeded the collection usage threshold.
- the number of times the usage level has matched
or exceeded the collection usage threshold.
getMemoryManagerNames
public String[] getMemoryManagerNames()
Returns the names of the memory managers associated with this
pool. Each pool has at least one memory manager.
- an array containing the name of each memory manager
responsible for this pool.
getName
public String getName()
Returns the name of the memory pool.
getPeakUsage
public MemoryUsage getPeakUsage()
Returns memory usage statistics for the peak memory usage
of the pool. The peak is the maximum memory usage occurring
since the virtual machine was started or since the peak
was reset by
resetPeakUsage()
. The return value
may be
null
if this pool is no longer valid.
- the memory usage of the memory pool at its peak,
or
null
if this pool is no longer valid.
getType
public MemoryType getType()
Returns the type of memory used by this pool. This can be
either heap or non-heap memory.
getUsage
public MemoryUsage getUsage()
Returns memory usage statistics for the current memory usage
of the pool. The return value may be null
if
this pool is no longer valid. Obtaining these values is
expected to be a relatively quick operation; if this will
instead be an expensive operation to perform, the documentation
of the implementating bean should specify that this is the
case. The values are intended to be an estimate for monitoring
purposes.
- the memory usage of the memory pool at present,
or
null
if this pool is no longer valid.
getUsageThreshold
public long getUsageThreshold()
Returns the usage threshold level in bytes. This
value is initially defined by the virtual machine.
- the usage threshold in bytes.
getUsageThresholdCount
public long getUsageThresholdCount()
Returns the number of times the usage level has matched or
exceeded the usage threshold.
- the number of times the usage level has matched
or exceeded the usage threshold.
isCollectionUsageThresholdExceeded
public boolean isCollectionUsageThresholdExceeded()
Returns true if the collection usage level is equal to
or greater than the collection usage threshold.
- true if the collection usage threshold has been
matched or exceeded.
isCollectionUsageThresholdSupported
public boolean isCollectionUsageThresholdSupported()
Returns true if this memory pool supports a collection usage
level threshold.
- true if a collection usage level threshold is supported.
isUsageThresholdExceeded
public boolean isUsageThresholdExceeded()
Returns true if the usage level is equal to
or greater than the usage threshold.
- true if the usage threshold has been
matched or exceeded.
isUsageThresholdSupported
public boolean isUsageThresholdSupported()
Returns true if this memory pool supports a usage level threshold.
- true if a usage level threshold is supported.
isValid
public boolean isValid()
Returns true if this memory pool is still valid. A memory pool
becomes invalid when it is removed by the virtual machine and
no longer used.
- true if this memory pool is valid.
resetPeakUsage
public void resetPeakUsage()
Resets the peak memory usage level to the current memory usage
level.
SecurityException
- if a security manager exists and
denies ManagementPermission("control").
setCollectionUsageThreshold
public void setCollectionUsageThreshold(long threshold)
Sets the collection threshold usage level to the given value.
A value of zero disables the collection threshold.
threshold
- the new threshold level.
setUsageThreshold
public void setUsageThreshold(long threshold)
Sets the threshold usage level to the given value. A value of
zero disables the threshold.
threshold
- the new threshold level.
MemoryPoolMXBean.java - Interface for a memory pool bean
Copyright (C) 2006 Free Software Foundation
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.