question: public static void report ( ) { if ( ! booted ) return ; ControllerThread . report ( ) ; RuntimeMeasurements . report ( ) ; for ( Enumeration < Organizer > e = organizers . elements ( ) ; e . hasMoreElements ( ) ; ) { Organizer organizer = e . nextElement ( ) ; organizer . report ( ) ; } if ( options . FINAL_REPORT_LEVEL >= 2 ) { EdgeCounts . dumpCounts ( ) ; dcg . dumpGraph ( ) ; } if ( options . REPORT_INTERRUPT_STATS ) { VM . sysWriteln ( "Timer Interrupt and Listener Stats" ) ; VM . sysWriteln ( "\tTotal number of clock ticks " , RVMThread . timerTicks ) ; VM . sysWriteln ( "\tController clock " , controllerClock ) ; VM . sysWriteln ( "\tNumber of method samples taken " , ( int ) methodSamples . getTotalNumberOfSamples ( ) ) ; } }
target:  This method is called when the VM is exiting to provide a hook to allow the adaptive optimization subsystem to generate a summary report. It can also be called directly from driver programs to allow reporting on a single run of a benchmark that the driver program is executing in a loop (in which case the adaptive system isn't actually exiting.....so some of the log messages may get a little weird).