396
397 void SystemGCDCmd::execute(DCmdSource source, TRAPS) {
398 if (!DisableExplicitGC) {
399 Universe::heap()->collect(GCCause::_dcmd_gc_run);
400 } else {
401 output()->print_cr("Explicit GC is disabled, no GC has been performed.");
402 }
403 }
404
405 void RunFinalizationDCmd::execute(DCmdSource source, TRAPS) {
406 Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_System(),
407 true, CHECK);
408 instanceKlassHandle klass(THREAD, k);
409 JavaValue result(T_VOID);
410 JavaCalls::call_static(&result, klass,
411 vmSymbols::run_finalization_name(),
412 vmSymbols::void_method_signature(), CHECK);
413 }
414
415 void HeapInfoDCmd::execute(DCmdSource source, TRAPS) {
416 Universe::heap()->print_on(output());
417 }
418
419 void FinalizerInfoDCmd::execute(DCmdSource source, TRAPS) {
420 ResourceMark rm;
421
422
423 Klass* k = SystemDictionary::resolve_or_null(
424 vmSymbols::finalizer_histogram_klass(), THREAD);
425 assert(k != NULL, "FinalizerHistogram class is not accessible");
426
427 instanceKlassHandle klass(THREAD, k);
428 JavaValue result(T_ARRAY);
429
430 // We are calling lang.ref.FinalizerHistogram.getFinalizerHistogram() method
431 // and expect it to return array of FinalizerHistogramEntry as Object[]
432
433 JavaCalls::call_static(&result, klass,
434 vmSymbols::get_finalizer_histogram_name(),
435 vmSymbols::void_finalizer_histogram_entry_array_signature(), CHECK);
|
396
397 void SystemGCDCmd::execute(DCmdSource source, TRAPS) {
398 if (!DisableExplicitGC) {
399 Universe::heap()->collect(GCCause::_dcmd_gc_run);
400 } else {
401 output()->print_cr("Explicit GC is disabled, no GC has been performed.");
402 }
403 }
404
405 void RunFinalizationDCmd::execute(DCmdSource source, TRAPS) {
406 Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_System(),
407 true, CHECK);
408 instanceKlassHandle klass(THREAD, k);
409 JavaValue result(T_VOID);
410 JavaCalls::call_static(&result, klass,
411 vmSymbols::run_finalization_name(),
412 vmSymbols::void_method_signature(), CHECK);
413 }
414
415 void HeapInfoDCmd::execute(DCmdSource source, TRAPS) {
416 MutexLocker hl(Heap_lock);
417 Universe::heap()->print_on(output());
418 }
419
420 void FinalizerInfoDCmd::execute(DCmdSource source, TRAPS) {
421 ResourceMark rm;
422
423
424 Klass* k = SystemDictionary::resolve_or_null(
425 vmSymbols::finalizer_histogram_klass(), THREAD);
426 assert(k != NULL, "FinalizerHistogram class is not accessible");
427
428 instanceKlassHandle klass(THREAD, k);
429 JavaValue result(T_ARRAY);
430
431 // We are calling lang.ref.FinalizerHistogram.getFinalizerHistogram() method
432 // and expect it to return array of FinalizerHistogramEntry as Object[]
433
434 JavaCalls::call_static(&result, klass,
435 vmSymbols::get_finalizer_histogram_name(),
436 vmSymbols::void_finalizer_histogram_entry_array_signature(), CHECK);
|