comparison src/share/vm/compiler/compileBroker.cpp @ 13364:5a4293f24642

added -G:PrintCompRate option for periodically printing out the current compilation rate
author Doug Simon <doug.simon@oracle.com>
date Tue, 17 Dec 2013 16:45:02 +0100
parents 91933915d1d0
children 9161ed8ce796
comparison
equal deleted inserted replaced
13363:5c891b2983c5 13364:5a4293f24642
2309 } else { 2309 } else {
2310 return (comp->name()); 2310 return (comp->name());
2311 } 2311 }
2312 } 2312 }
2313 2313
2314 void CompileBroker::print_times() { 2314 void CompileBroker::print_times(bool per_compiler, bool aggregate) {
2315 #ifdef GRAAL 2315 #ifdef GRAAL
2316 elapsedTimer standard_compilation; 2316 elapsedTimer standard_compilation;
2317 elapsedTimer total_compilation; 2317 elapsedTimer total_compilation;
2318 elapsedTimer osr_compilation; 2318 elapsedTimer osr_compilation;
2319 2319
2329 bool printedHeader = false; 2329 bool printedHeader = false;
2330 2330
2331 for (unsigned int i = 0; i < sizeof(_compilers) / sizeof(AbstractCompiler*); i++) { 2331 for (unsigned int i = 0; i < sizeof(_compilers) / sizeof(AbstractCompiler*); i++) {
2332 AbstractCompiler* comp = _compilers[i]; 2332 AbstractCompiler* comp = _compilers[i];
2333 if (comp != NULL) { 2333 if (comp != NULL) {
2334 if (!printedHeader) { 2334 if (per_compiler && aggregate && !printedHeader) {
2335 printedHeader = true; 2335 printedHeader = true;
2336 tty->cr(); 2336 tty->cr();
2337 tty->print_cr("Individual compiler times (for compiled methods only)"); 2337 tty->print_cr("Individual compiler times (for compiled methods only)");
2338 tty->print_cr("------------------------------------------------"); 2338 tty->print_cr("------------------------------------------------");
2339 tty->cr(); 2339 tty->cr();
2350 osr_compile_count += stats->_osr._count; 2350 osr_compile_count += stats->_osr._count;
2351 2351
2352 nmethods_size += stats->_nmethods_size; 2352 nmethods_size += stats->_nmethods_size;
2353 nmethods_code_size += stats->_nmethods_code_size; 2353 nmethods_code_size += stats->_nmethods_code_size;
2354 2354
2355 if (per_compiler) {
2355 tty->print_cr(" %s {speed: %d bytes/s; standard: %6.3f s, %d bytes, %d methods; osr: %6.3f s, %d bytes, %d methods; nmethods_size: %d bytes; nmethods_code_size: %d bytes}", 2356 tty->print_cr(" %s {speed: %d bytes/s; standard: %6.3f s, %d bytes, %d methods; osr: %6.3f s, %d bytes, %d methods; nmethods_size: %d bytes; nmethods_code_size: %d bytes}",
2356 comp->name(), stats->bytes_per_second(), 2357 comp->name(), stats->bytes_per_second(),
2357 stats->_standard._time.seconds(), stats->_standard._bytes, stats->_standard._count, 2358 stats->_standard._time.seconds(), stats->_standard._bytes, stats->_standard._count,
2358 stats->_osr._time.seconds(), stats->_osr._bytes, stats->_osr._count, 2359 stats->_osr._time.seconds(), stats->_osr._bytes, stats->_osr._count,
2359 stats->_nmethods_size, stats->_nmethods_code_size); 2360 stats->_nmethods_size, stats->_nmethods_code_size);
2361 }
2360 } 2362 }
2361 } 2363 }
2362 total_compile_count = osr_compile_count + standard_compile_count; 2364 total_compile_count = osr_compile_count + standard_compile_count;
2363 total_compilation.add(osr_compilation); 2365 total_compilation.add(osr_compilation);
2364 total_compilation.add(standard_compilation); 2366 total_compilation.add(standard_compilation);
2376 2378
2377 int nmethods_size = CompileBroker::_sum_nmethod_code_size; 2379 int nmethods_size = CompileBroker::_sum_nmethod_code_size;
2378 int nmethods_code_size = CompileBroker::_sum_nmethod_size; 2380 int nmethods_code_size = CompileBroker::_sum_nmethod_size;
2379 #endif 2381 #endif
2380 2382
2383 if (!aggregate) {
2384 return;
2385 }
2381 tty->cr(); 2386 tty->cr();
2382 tty->print_cr("Accumulated compiler times (for compiled methods only)"); 2387 tty->print_cr("Accumulated compiler times (for compiled methods only)");
2383 tty->print_cr("------------------------------------------------"); 2388 tty->print_cr("------------------------------------------------");
2384 //0000000000111111111122222222223333333333444444444455555555556666666666 2389 //0000000000111111111122222222223333333333444444444455555555556666666666
2385 //0123456789012345678901234567890123456789012345678901234567890123456789 2390 //0123456789012345678901234567890123456789012345678901234567890123456789