static volatile long gc_memoryUsedAfterGC; static volatile long gc_lastStart; static volatile long gc_duration; static Lock gc_lock = lock(); static void gc() { callOpt(javax(), 'cleanWeakMaps); { lock gc_lock; gc_lastStart = sysNow(); System.gc(); gc_duration = sysNow()-gc_lastStart; gc_memoryUsedAfterGC = usedMemory(); } vmBus_send('gcDone); }