1 21 22 package org.armedbear.lisp; 23 24 public final class gc extends Primitive0 26 { 27 private gc() 28 { 29 super("gc", PACKAGE_EXT); 30 } 31 32 public LispObject execute() 33 { 34 Runtime runtime = Runtime.getRuntime(); 35 long free = 0; 36 long maxFree = 0; 37 while (true) { 38 try { 39 runtime.gc(); 40 Thread.currentThread().sleep(100); 41 runtime.runFinalization(); 42 Thread.currentThread().sleep(100); 43 runtime.gc(); 44 Thread.currentThread().sleep(100); 45 } 46 catch (InterruptedException e) {} 47 free = runtime.freeMemory(); 48 if (free > maxFree) 49 maxFree = free; 50 else 51 break; 52 } 53 return number(free); 54 } 55 56 private static final gc GC = new gc(); 57 } 58 | Popular Tags |