501 mgr->gc_end(recordPostGCUsage, recordAccumulatedGCTime, recordGCEndTime,
502 countCollection, cause);
503 }
504
505 void MemoryService::oops_do(OopClosure* f) {
506 int i;
507
508 for (i = 0; i < _pools_list->length(); i++) {
509 MemoryPool* pool = _pools_list->at(i);
510 pool->oops_do(f);
511 }
512 for (i = 0; i < _managers_list->length(); i++) {
513 MemoryManager* mgr = _managers_list->at(i);
514 mgr->oops_do(f);
515 }
516 }
517
518 bool MemoryService::set_verbose(bool verbose) {
519 MutexLocker m(Management_lock);
520 // verbose will be set to the previous value
521 bool succeed = CommandLineFlags::boolAtPut((char*)"PrintGC", &verbose, Flag::MANAGEMENT);
522 assert(succeed, "Setting PrintGC flag fails");
523 ClassLoadingService::reset_trace_class_unloading();
524
525 return verbose;
526 }
527
528 Handle MemoryService::create_MemoryUsage_obj(MemoryUsage usage, TRAPS) {
529 Klass* k = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
530 instanceKlassHandle ik(THREAD, k);
531
532 instanceHandle obj = ik->allocate_instance_handle(CHECK_NH);
533
534 JavaValue result(T_VOID);
535 JavaCallArguments args(10);
536 args.push_oop(obj); // receiver
537 args.push_long(usage.init_size_as_jlong()); // Argument 1
538 args.push_long(usage.used_as_jlong()); // Argument 2
539 args.push_long(usage.committed_as_jlong()); // Argument 3
540 args.push_long(usage.max_size_as_jlong()); // Argument 4
541
|
501 mgr->gc_end(recordPostGCUsage, recordAccumulatedGCTime, recordGCEndTime,
502 countCollection, cause);
503 }
504
505 void MemoryService::oops_do(OopClosure* f) {
506 int i;
507
508 for (i = 0; i < _pools_list->length(); i++) {
509 MemoryPool* pool = _pools_list->at(i);
510 pool->oops_do(f);
511 }
512 for (i = 0; i < _managers_list->length(); i++) {
513 MemoryManager* mgr = _managers_list->at(i);
514 mgr->oops_do(f);
515 }
516 }
517
518 bool MemoryService::set_verbose(bool verbose) {
519 MutexLocker m(Management_lock);
520 // verbose will be set to the previous value
521 bool succeed = (CommandLineFlags::boolAtPut((char*)"PrintGC", &verbose, Flag::MANAGEMENT) == Flag::SUCCESS);
522 assert(succeed, "Setting PrintGC flag fails");
523 ClassLoadingService::reset_trace_class_unloading();
524
525 return verbose;
526 }
527
528 Handle MemoryService::create_MemoryUsage_obj(MemoryUsage usage, TRAPS) {
529 Klass* k = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
530 instanceKlassHandle ik(THREAD, k);
531
532 instanceHandle obj = ik->allocate_instance_handle(CHECK_NH);
533
534 JavaValue result(T_VOID);
535 JavaCallArguments args(10);
536 args.push_oop(obj); // receiver
537 args.push_long(usage.init_size_as_jlong()); // Argument 1
538 args.push_long(usage.used_as_jlong()); // Argument 2
539 args.push_long(usage.committed_as_jlong()); // Argument 3
540 args.push_long(usage.max_size_as_jlong()); // Argument 4
541
|