comparison src/share/vm/compiler/compileBroker.cpp @ 7568:140d4d4ab3b9

added per-compiler compilation speed statistics for C1 and C2 (included in output produced by -XX:+CITime)
author Doug Simon <doug.simon@oracle.com>
date Wed, 30 Jan 2013 21:36:28 +0100
parents 989155e2d07a
children 3ac7d10a6572
comparison
equal deleted inserted replaced
7567:a8bc60aeacb8 7568:140d4d4ab3b9
2080 if (CITime) { 2080 if (CITime) {
2081 _t_total_compilation.add(time); 2081 _t_total_compilation.add(time);
2082 if (is_osr) { 2082 if (is_osr) {
2083 _t_osr_compilation.add(time); 2083 _t_osr_compilation.add(time);
2084 _sum_osr_bytes_compiled += method->code_size() + task->num_inlined_bytecodes(); 2084 _sum_osr_bytes_compiled += method->code_size() + task->num_inlined_bytecodes();
2085 #ifdef GRAAL
2086 compiler(task->comp_level())->stats()->_t_osr_compilation.add(time);
2087 compiler(task->comp_level())->stats()->_sum_osr_bytes_compiled += method->code_size() + task->num_inlined_bytecodes();
2088 #endif
2085 } else { 2089 } else {
2086 _t_standard_compilation.add(time); 2090 _t_standard_compilation.add(time);
2087 _sum_standard_bytes_compiled += method->code_size() + task->num_inlined_bytecodes(); 2091 _sum_standard_bytes_compiled += method->code_size() + task->num_inlined_bytecodes();
2092 #ifdef GRAAL
2093 compiler(task->comp_level())->stats()->_t_standard_compilation.add(time);
2094 compiler(task->comp_level())->stats()->_sum_standard_bytes_compiled += method->code_size() + task->num_inlined_bytecodes();
2095 #endif
2088 } 2096 }
2089 } 2097 }
2090 2098
2091 if (UsePerfData) { 2099 if (UsePerfData) {
2092 // save the name of the last method compiled 2100 // save the name of the last method compiled
2155 tty->cr(); 2163 tty->cr();
2156 int tcb = CompileBroker::_sum_osr_bytes_compiled + CompileBroker::_sum_standard_bytes_compiled; 2164 int tcb = CompileBroker::_sum_osr_bytes_compiled + CompileBroker::_sum_standard_bytes_compiled;
2157 tty->print_cr(" Total compiled bytecodes : %6d bytes", tcb); 2165 tty->print_cr(" Total compiled bytecodes : %6d bytes", tcb);
2158 tty->print_cr(" Standard compilation : %6d bytes", CompileBroker::_sum_standard_bytes_compiled); 2166 tty->print_cr(" Standard compilation : %6d bytes", CompileBroker::_sum_standard_bytes_compiled);
2159 tty->print_cr(" On stack replacement : %6d bytes", CompileBroker::_sum_osr_bytes_compiled); 2167 tty->print_cr(" On stack replacement : %6d bytes", CompileBroker::_sum_osr_bytes_compiled);
2160 int bps = (int)(tcb / CompileBroker::_t_total_compilation.seconds()); 2168 double tcs = CompileBroker::_t_total_compilation.seconds();
2169 int bps = tcs == 0.0 ? 0 : (int)(tcb / tcs);
2161 tty->print_cr(" Average compilation speed: %6d bytes/s", bps); 2170 tty->print_cr(" Average compilation speed: %6d bytes/s", bps);
2171 #ifdef GRAAL
2172 for (unsigned int i = 0; i < sizeof(_compilers) / sizeof(AbstractCompiler*); i++) {
2173 AbstractCompiler* comp = _compilers[i];
2174 if (comp != NULL) {
2175 CompilerStatistics* stats = comp->stats();
2176 int bytecodes = stats->_sum_osr_bytes_compiled + stats->_sum_standard_bytes_compiled;
2177 if (bytecodes != 0) {
2178 double seconds = stats->_t_osr_compilation.seconds() + stats->_t_standard_compilation.seconds();
2179 int bps = seconds == 0.0 ? 0 : (int) (bytecodes / seconds);
2180 tty->print_cr(" %7s compilation speed: %6d bytes/s {standard: %6.3f s, %6d bytes; osr: %6.3f s, %6d bytes}",
2181 comp->name(), bps, stats->_t_standard_compilation.seconds(), stats->_sum_standard_bytes_compiled,
2182 stats->_t_osr_compilation.seconds(), stats->_sum_osr_bytes_compiled);
2183 }
2184 }
2185 }
2186 #endif
2162 tty->cr(); 2187 tty->cr();
2163 tty->print_cr(" nmethod code size : %6d bytes", CompileBroker::_sum_nmethod_code_size); 2188 tty->print_cr(" nmethod code size : %6d bytes", CompileBroker::_sum_nmethod_code_size);
2164 tty->print_cr(" nmethod total size : %6d bytes", CompileBroker::_sum_nmethod_size); 2189 tty->print_cr(" nmethod total size : %6d bytes", CompileBroker::_sum_nmethod_size);
2165 } 2190 }
2166 2191