< prev index next >

src/hotspot/share/runtime/java.cpp

Print this page




 324     MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
 325     CodeCache::print_internals();
 326   }
 327 
 328   if (PrintVtableStats) {
 329     klassVtable::print_statistics();
 330     klassItable::print_statistics();
 331   }
 332   if (VerifyOops) {
 333     tty->print_cr("+VerifyOops count: %d", StubRoutines::verify_oop_count());
 334   }
 335 
 336   print_bytecode_count();
 337   if (PrintMallocStatistics) {
 338     tty->print("allocation stats: ");
 339     alloc_stats.print();
 340     tty->cr();
 341   }
 342 
 343   if (PrintSystemDictionaryAtExit) {

 344     SystemDictionary::print();

 345   }
 346 
 347   if (LogTouchedMethods && PrintTouchedMethodsAtExit) {
 348     Method::print_touched_methods(tty);
 349   }
 350 
 351   if (PrintBiasedLockingStatistics) {
 352     BiasedLocking::print_counters();
 353   }
 354 
 355   // Native memory tracking data
 356   if (PrintNMTStatistics) {
 357     MemTracker::final_report(tty);
 358   }
 359 
 360   ThreadsSMRSupport::log_statistics();
 361 }
 362 
 363 #else // PRODUCT MODE STATISTICS
 364 


 466   // PeriodicTasks to reduce the likelihood of races.
 467   if (PeriodicTask::num_tasks() > 0) {
 468     WatcherThread::stop();
 469   }
 470 
 471   // shut down the StatSampler task
 472   StatSampler::disengage();
 473   StatSampler::destroy();
 474 
 475   // Stop concurrent GC threads
 476   Universe::heap()->stop();
 477 
 478   // Print GC/heap related information.
 479   Log(gc, heap, exit) log;
 480   if (log.is_info()) {
 481     ResourceMark rm;
 482     LogStream ls_info(log.info());
 483     Universe::print_on(&ls_info);
 484     if (log.is_trace()) {
 485       LogStream ls_trace(log.trace());
 486       ClassLoaderDataGraph::dump_on(&ls_trace);
 487     }
 488   }
 489 
 490   if (PrintBytecodeHistogram) {
 491     BytecodeHistogram::print();
 492   }
 493 
 494   if (JvmtiExport::should_post_thread_life()) {
 495     JvmtiExport::post_thread_end(thread);
 496   }
 497 
 498   // Always call even when there are not JVMTI environments yet, since environments
 499   // may be attached late and JVMTI must track phases of VM execution
 500   JvmtiExport::post_vm_death();
 501   Threads::shutdown_vm_agents();
 502 
 503   // Terminate the signal thread
 504   // Note: we don't wait until it actually dies.
 505   os::terminate_signal_thread();
 506 




 324     MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
 325     CodeCache::print_internals();
 326   }
 327 
 328   if (PrintVtableStats) {
 329     klassVtable::print_statistics();
 330     klassItable::print_statistics();
 331   }
 332   if (VerifyOops) {
 333     tty->print_cr("+VerifyOops count: %d", StubRoutines::verify_oop_count());
 334   }
 335 
 336   print_bytecode_count();
 337   if (PrintMallocStatistics) {
 338     tty->print("allocation stats: ");
 339     alloc_stats.print();
 340     tty->cr();
 341   }
 342 
 343   if (PrintSystemDictionaryAtExit) {
 344     ResourceMark rm;
 345     SystemDictionary::print();
 346     ClassLoaderDataGraph::print();
 347   }
 348 
 349   if (LogTouchedMethods && PrintTouchedMethodsAtExit) {
 350     Method::print_touched_methods(tty);
 351   }
 352 
 353   if (PrintBiasedLockingStatistics) {
 354     BiasedLocking::print_counters();
 355   }
 356 
 357   // Native memory tracking data
 358   if (PrintNMTStatistics) {
 359     MemTracker::final_report(tty);
 360   }
 361 
 362   ThreadsSMRSupport::log_statistics();
 363 }
 364 
 365 #else // PRODUCT MODE STATISTICS
 366 


 468   // PeriodicTasks to reduce the likelihood of races.
 469   if (PeriodicTask::num_tasks() > 0) {
 470     WatcherThread::stop();
 471   }
 472 
 473   // shut down the StatSampler task
 474   StatSampler::disengage();
 475   StatSampler::destroy();
 476 
 477   // Stop concurrent GC threads
 478   Universe::heap()->stop();
 479 
 480   // Print GC/heap related information.
 481   Log(gc, heap, exit) log;
 482   if (log.is_info()) {
 483     ResourceMark rm;
 484     LogStream ls_info(log.info());
 485     Universe::print_on(&ls_info);
 486     if (log.is_trace()) {
 487       LogStream ls_trace(log.trace());
 488       ClassLoaderDataGraph::print_on(&ls_trace);
 489     }
 490   }
 491 
 492   if (PrintBytecodeHistogram) {
 493     BytecodeHistogram::print();
 494   }
 495 
 496   if (JvmtiExport::should_post_thread_life()) {
 497     JvmtiExport::post_thread_end(thread);
 498   }
 499 
 500   // Always call even when there are not JVMTI environments yet, since environments
 501   // may be attached late and JVMTI must track phases of VM execution
 502   JvmtiExport::post_vm_death();
 503   Threads::shutdown_vm_agents();
 504 
 505   // Terminate the signal thread
 506   // Note: we don't wait until it actually dies.
 507   os::terminate_signal_thread();
 508 


< prev index next >