1.1 --- a/src/share/vm/runtime/java.cpp Wed Oct 16 10:52:41 2013 +0200 1.2 +++ b/src/share/vm/runtime/java.cpp Tue Nov 05 17:38:04 2013 -0800 1.3 @@ -183,6 +183,7 @@ 1.4 collected_profiled_methods->sort(&compare_methods); 1.5 1.6 int count = collected_profiled_methods->length(); 1.7 + int total_size = 0; 1.8 if (count > 0) { 1.9 for (int index = 0; index < count; index++) { 1.10 Method* m = collected_profiled_methods->at(index); 1.11 @@ -190,10 +191,18 @@ 1.12 tty->print_cr("------------------------------------------------------------------------"); 1.13 //m->print_name(tty); 1.14 m->print_invocation_count(); 1.15 + tty->print_cr(" mdo size: %d bytes", m->method_data()->size_in_bytes()); 1.16 tty->cr(); 1.17 + // Dump data on parameters if any 1.18 + if (m->method_data() != NULL && m->method_data()->parameters_type_data() != NULL) { 1.19 + tty->fill_to(2); 1.20 + m->method_data()->parameters_type_data()->print_data_on(tty); 1.21 + } 1.22 m->print_codes(); 1.23 + total_size += m->method_data()->size_in_bytes(); 1.24 } 1.25 tty->print_cr("------------------------------------------------------------------------"); 1.26 + tty->print_cr("Total MDO size: %d bytes", total_size); 1.27 } 1.28 } 1.29 1.30 @@ -544,6 +553,19 @@ 1.31 // it will run into trouble when system destroys static variables. 1.32 MemTracker::shutdown(MemTracker::NMT_normal); 1.33 1.34 + if (VerifyStringTableAtExit) { 1.35 + int fail_cnt = 0; 1.36 + { 1.37 + MutexLocker ml(StringTable_lock); 1.38 + fail_cnt = StringTable::verify_and_compare_entries(); 1.39 + } 1.40 + 1.41 + if (fail_cnt != 0) { 1.42 + tty->print_cr("ERROR: fail_cnt=%d", fail_cnt); 1.43 + guarantee(fail_cnt == 0, "unexpected StringTable verification failures"); 1.44 + } 1.45 + } 1.46 + 1.47 #undef BEFORE_EXIT_NOT_RUN 1.48 #undef BEFORE_EXIT_RUNNING 1.49 #undef BEFORE_EXIT_DONE