001 /*
002 * LAPIS lightweight structured text processing system
003 *
004 * Copyright (C) 1998-2002 Carnegie Mellon University,
005 * Copyright (C) 2003 Massachusetts Institute of Technology.
006 * All rights reserved.
007 *
008 * This library is free software; you can redistribute it
009 * and/or modify it under the terms of the GNU General
010 * Public License as published by the Free Software
011 * Foundation, version 2.
012 *
013 * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/
014 */
015
016
017 package lapisx.util;
018
019 public abstract class Mem {
020
021 public static long free () {
022 return Runtime.getRuntime ().freeMemory ();
023 }
024
025 public static long used () {
026 Runtime r = Runtime.getRuntime ();
027 return r.totalMemory() - r.freeMemory ();
028 }
029
030 public static long total () {
031 return Runtime.getRuntime ().totalMemory ();
032 }
033
034 public static String getReport () {
035 return "Memory: used " + (used()/1000) + "KB, free "
036 + (free()/1000) + "KB, total " + (total()/1000) + "KB";
037 }
038
039 public static void gc () {
040 Runtime r = Runtime.getRuntime ();
041 r.runFinalization ();
042 r.gc ();
043 }
044
045 public static void dumpThreadInfo () {
046 ThreadGroup g = Thread.currentThread().getThreadGroup ();
047 Thread[] t = new Thread[g.activeCount ()];
048 g.enumerate (t);
049 System.err.println ("Active threads in " + g);
050 for (int i=0; i<t.length; ++i)
051 System.err.println (t[i]);
052 }
053
054 }