< prev index next >

src/share/vm/runtime/java.cpp

Print this page




 349   if (PrintSystemDictionaryAtExit) {
 350     SystemDictionary::print();
 351   }
 352 
 353   if (PrintBiasedLockingStatistics) {
 354     BiasedLocking::print_counters();
 355   }
 356 
 357 #ifdef ENABLE_ZAP_DEAD_LOCALS
 358 #ifdef COMPILER2
 359   if (ZapDeadCompiledLocals) {
 360     tty->print_cr("Compile::CompiledZap_count = %d", Compile::CompiledZap_count);
 361     tty->print_cr("OptoRuntime::ZapDeadCompiledLocals_count = %d", OptoRuntime::ZapDeadCompiledLocals_count);
 362   }
 363 #endif // COMPILER2
 364 #endif // ENABLE_ZAP_DEAD_LOCALS
 365   // Native memory tracking data
 366   if (PrintNMTStatistics) {
 367     MemTracker::final_report(tty);
 368   }




 369 }
 370 
 371 #else // PRODUCT MODE STATISTICS
 372 
 373 void print_statistics() {
 374 
 375   if (CITime) {
 376     CompileBroker::print_times();
 377   }
 378 
 379   if (PrintCodeCache) {
 380     MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
 381     CodeCache::print();
 382   }
 383 
 384   if (PrintMethodFlushingStatistics) {
 385     NMethodSweeper::print();
 386   }
 387 
 388 #ifdef COMPILER2
 389   if (PrintPreciseBiasedLockingStatistics || PrintPreciseRTMLockingStatistics) {
 390     OptoRuntime::print_named_counters();
 391   }
 392 #endif
 393   if (PrintBiasedLockingStatistics) {
 394     BiasedLocking::print_counters();
 395   }
 396 
 397   // Native memory tracking data
 398   if (PrintNMTStatistics) {
 399     MemTracker::final_report(tty);
 400   }




 401 }
 402 
 403 #endif
 404 
 405 
 406 // Helper class for registering on_exit calls through JVM_OnExit
 407 
 408 extern "C" {
 409     typedef void (*__exit_proc)(void);
 410 }
 411 
 412 class ExitProc : public CHeapObj<mtInternal> {
 413  private:
 414   __exit_proc _proc;
 415   // void (*_proc)(void);
 416   ExitProc* _next;
 417  public:
 418   // ExitProc(void (*proc)(void)) {
 419   ExitProc(__exit_proc proc) {
 420     _proc = proc;




 349   if (PrintSystemDictionaryAtExit) {
 350     SystemDictionary::print();
 351   }
 352 
 353   if (PrintBiasedLockingStatistics) {
 354     BiasedLocking::print_counters();
 355   }
 356 
 357 #ifdef ENABLE_ZAP_DEAD_LOCALS
 358 #ifdef COMPILER2
 359   if (ZapDeadCompiledLocals) {
 360     tty->print_cr("Compile::CompiledZap_count = %d", Compile::CompiledZap_count);
 361     tty->print_cr("OptoRuntime::ZapDeadCompiledLocals_count = %d", OptoRuntime::ZapDeadCompiledLocals_count);
 362   }
 363 #endif // COMPILER2
 364 #endif // ENABLE_ZAP_DEAD_LOCALS
 365   // Native memory tracking data
 366   if (PrintNMTStatistics) {
 367     MemTracker::final_report(tty);
 368   }
 369 
 370   if (AsyncGCLogging && PrintGCLogStatistics) {
 371     tty->print_cr("GCLogOverflow: %d", GCLogEvent::buffer_overflow_count());
 372   }
 373 }
 374 
 375 #else // PRODUCT MODE STATISTICS
 376 
 377 void print_statistics() {
 378 
 379   if (CITime) {
 380     CompileBroker::print_times();
 381   }
 382 
 383   if (PrintCodeCache) {
 384     MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
 385     CodeCache::print();
 386   }
 387 
 388   if (PrintMethodFlushingStatistics) {
 389     NMethodSweeper::print();
 390   }
 391 
 392 #ifdef COMPILER2
 393   if (PrintPreciseBiasedLockingStatistics || PrintPreciseRTMLockingStatistics) {
 394     OptoRuntime::print_named_counters();
 395   }
 396 #endif
 397   if (PrintBiasedLockingStatistics) {
 398     BiasedLocking::print_counters();
 399   }
 400 
 401   // Native memory tracking data
 402   if (PrintNMTStatistics) {
 403     MemTracker::final_report(tty);
 404   }
 405 
 406   if (AsyncGCLogging && PrintGCLogStatistics) {
 407     tty->print_cr("GCLogOverflow: %d", GCLogEvent::buffer_overflow_count());
 408   }
 409 }
 410 
 411 #endif
 412 
 413 
 414 // Helper class for registering on_exit calls through JVM_OnExit
 415 
 416 extern "C" {
 417     typedef void (*__exit_proc)(void);
 418 }
 419 
 420 class ExitProc : public CHeapObj<mtInternal> {
 421  private:
 422   __exit_proc _proc;
 423   // void (*_proc)(void);
 424   ExitProc* _next;
 425  public:
 426   // ExitProc(void (*proc)(void)) {
 427   ExitProc(__exit_proc proc) {
 428     _proc = proc;


< prev index next >