Import GNU Classpath (classpath-0_97_2-release).
libjava/ 2008-06-28 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (classpath-0_97_2-release). * Regenerate class and header files. * Regenerate auto* files. * gcj/javaprims.h: Define jobjectRefType. * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only). (_Jv_JNIFunctions): Initialize GetObjectRefType. * gnu/classpath/jdwp/VMVirtualMachine.java, java/security/VMSecureRandom.java: Merge from classpath. * HACKING: Fix typo. * ChangeLog-2007: New file. * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath. libjava/classpath/ 2008-06-28 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac.m4: Disable check for JAVAC, when not configured with --enable-java-maintainer-mode. * aclocal.m4, configure: Regenerate. * native/jni/gstreamer-peer/Makefile.am: Do not link with libclasspathnative. * native/jni/gstreamer-peer/Makefile.in: Regenerate. * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting JCOMPILER, drop flags not understood by gcj. From-SVN: r137223
This commit is contained in:
@@ -37,8 +37,14 @@ exception statement from your version. */
|
||||
|
||||
package gnu.java.lang.management;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.MemoryPoolMXBean;
|
||||
import java.lang.management.MemoryType;
|
||||
import java.lang.management.MemoryUsage;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Provides access to information about the memory
|
||||
* management of the current invocation of the virtual
|
||||
@@ -62,10 +68,7 @@ final class VMMemoryMXBeanImpl
|
||||
*/
|
||||
static MemoryUsage getHeapMemoryUsage()
|
||||
{
|
||||
Runtime runtime = Runtime.getRuntime();
|
||||
long totalMem = runtime.totalMemory();
|
||||
return new MemoryUsage(-1, totalMem - runtime.freeMemory(),
|
||||
totalMem, runtime.maxMemory());
|
||||
return getUsage(MemoryType.HEAP);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,7 +79,10 @@ final class VMMemoryMXBeanImpl
|
||||
* @return an {@link java.lang.management.MemoryUsage} instance
|
||||
* for non-heap memory.
|
||||
*/
|
||||
static native MemoryUsage getNonHeapMemoryUsage();
|
||||
static MemoryUsage getNonHeapMemoryUsage()
|
||||
{
|
||||
return getUsage(MemoryType.NON_HEAP);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of objects ready to be garbage collected.
|
||||
@@ -106,4 +112,45 @@ final class VMMemoryMXBeanImpl
|
||||
*/
|
||||
static native void setVerbose(boolean verbose);
|
||||
|
||||
/**
|
||||
* Totals the memory usage from all the pools that match
|
||||
* the given type.
|
||||
*
|
||||
* @param type the type of memory pools to accumulate
|
||||
* (heap or non-heap).
|
||||
* @return the memory usage overall.
|
||||
*/
|
||||
private static MemoryUsage getUsage(MemoryType type) {
|
||||
long init = 0, committed = 0, used = 0, max = 0;
|
||||
Iterator pools =
|
||||
ManagementFactory.getMemoryPoolMXBeans().iterator();
|
||||
while (pools.hasNext())
|
||||
{
|
||||
MemoryPoolMXBean pool = (MemoryPoolMXBean) pools.next();
|
||||
if (pool.getType() == type)
|
||||
{
|
||||
MemoryUsage usage = pool.getUsage();
|
||||
if (init != -1)
|
||||
{
|
||||
long poolInit = usage.getInit();
|
||||
if (poolInit == -1)
|
||||
init = -1;
|
||||
else
|
||||
init += poolInit;
|
||||
}
|
||||
committed += usage.getCommitted();
|
||||
used += usage.getUsed();
|
||||
if (max != -1)
|
||||
{
|
||||
long poolMax = usage.getMax();
|
||||
if (poolMax == -1)
|
||||
max = -1;
|
||||
else
|
||||
max += poolMax;
|
||||
}
|
||||
}
|
||||
}
|
||||
return new MemoryUsage(init, used, committed, max);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -256,7 +256,6 @@ public final class VMChannel
|
||||
* Assumes the that buffer list constains DirectBuffers. Will perform
|
||||
* as gathering write.
|
||||
*
|
||||
* @param fd
|
||||
* @param srcs
|
||||
* @param offset
|
||||
* @param length
|
||||
|
||||
Reference in New Issue
Block a user