--- old/src/share/vm/runtime/java.cpp 2013-10-02 17:55:41.748789829 +0200 +++ new/src/share/vm/runtime/java.cpp 2013-10-02 17:55:41.487595522 +0200 @@ -122,7 +122,7 @@ HandleMark hm(thread); methodHandle mh(thread, m); if ((m->method_data() != NULL) && - (PrintMethodData || CompilerOracle::should_print(mh))) { + (PrintMethodData || PrintMethodDataStats || CompilerOracle::should_print(mh))) { collected_profiled_methods->push(m); } } @@ -183,18 +183,27 @@ collected_profiled_methods->sort(&compare_methods); int count = collected_profiled_methods->length(); + int total_size = 0; if (count > 0) { for (int index = 0; index < count; index++) { Method* m = collected_profiled_methods->at(index); - ttyLocker ttyl; - tty->print_cr("------------------------------------------------------------------------"); - //m->print_name(tty); - m->print_invocation_count(); - tty->cr(); - m->print_codes(); + if (PrintMethodData || CompilerOracle::should_print(m)) { + ttyLocker ttyl; + tty->print_cr("------------------------------------------------------------------------"); + //m->print_name(tty); + m->print_invocation_count(); + tty->cr(); + m->print_codes(); + } + if (PrintMethodDataStats) { + total_size += m->method_data()->size_in_bytes(); + } } tty->print_cr("------------------------------------------------------------------------"); } + if (PrintMethodDataStats) { + tty->print_cr("Total MDO space = %d", total_size); + } } void print_bytecode_count() {