Memory related : JVM Tool Interface « Development Class « Java






Memory related

      

/*
 * Copyright (c) 1998-2002 Carnegie Mellon University.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
 * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
 * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */


public abstract class Mem {

    public static long free () {
        return Runtime.getRuntime ().freeMemory ();
    }

    public static long used () {
        Runtime r = Runtime.getRuntime ();
        return r.totalMemory() - r.freeMemory ();
    }

    public static long total () {
        return Runtime.getRuntime ().totalMemory ();
    }

    public static String getReport () {
        return "Memory: used " + (used()/1000) + "KB, free "
            + (free()/1000) + "KB, total " + (total()/1000) + "KB";
    }

    public static void gc () {
        Runtime r = Runtime.getRuntime ();
        r.runFinalization ();
        r.gc ();
    }

    public static void dumpThreadInfo () {
        ThreadGroup g = Thread.currentThread().getThreadGroup ();
        Thread[] t = new Thread[g.activeCount ()];
        g.enumerate (t);
        System.err.println ("Active threads in " + g);
        for (int i=0; i<t.length; ++i)
            System.err.println (t[i]);
    }

}

   
    
    
    
    
    
  








Related examples in the same category

1.Set the memory available to the JVM
2.jconsole plugin
3.This agent library can be used to track threads that wait on monitors.
4.Check the version of the interface being used
5.Track method call and return counts
6.Inject code at method calls
7.Do some very basic bytecode insertion (BCI) of class files
8.Byte Code Instrumentation (BCI)
9.How to get an easy view of the heap in terms of total object count and space used
10.Track object allocations
11.This agent library can be used to track garbage collection events
12.JVM Tool Interface agent utilities
13.Java Platform Debugger Architecture
14.System memory
15.Floating Point Arithmetic
16.Logic and Integer Arithmetic
17.JVM Simulator
18.Stack memory view
19.JVM memory util
20.This class determines the version of the Java Virtual Machine.
21.Generate a listing of the most trusted certification authorities used by your JVM
22.Java version Util