498 mgr->gc_end(recordPostGCUsage, recordAccumulatedGCTime, recordGCEndTime,
499 countCollection, cause);
500 }
501
502 void MemoryService::oops_do(OopClosure* f) {
503 int i;
504
505 for (i = 0; i < _pools_list->length(); i++) {
506 MemoryPool* pool = _pools_list->at(i);
507 pool->oops_do(f);
508 }
509 for (i = 0; i < _managers_list->length(); i++) {
510 MemoryManager* mgr = _managers_list->at(i);
511 mgr->oops_do(f);
512 }
513 }
514
515 bool MemoryService::set_verbose(bool verbose) {
516 MutexLocker m(Management_lock);
517 // verbose will be set to the previous value
518 bool succeed = CommandLineFlags::boolAtPut((char*)"PrintGC", &verbose, MANAGEMENT);
519 assert(succeed, "Setting PrintGC flag fails");
520 ClassLoadingService::reset_trace_class_unloading();
521
522 return verbose;
523 }
524
525 Handle MemoryService::create_MemoryUsage_obj(MemoryUsage usage, TRAPS) {
526 Klass* k = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
527 instanceKlassHandle ik(THREAD, k);
528
529 instanceHandle obj = ik->allocate_instance_handle(CHECK_NH);
530
531 JavaValue result(T_VOID);
532 JavaCallArguments args(10);
533 args.push_oop(obj); // receiver
534 args.push_long(usage.init_size_as_jlong()); // Argument 1
535 args.push_long(usage.used_as_jlong()); // Argument 2
536 args.push_long(usage.committed_as_jlong()); // Argument 3
537 args.push_long(usage.max_size_as_jlong()); // Argument 4
538
601 bool recordGCEndTime,
602 bool countCollection) {
603 _fullGC = fullGC;
604 _recordGCBeginTime = recordGCBeginTime;
605 _recordPreGCUsage = recordPreGCUsage;
606 _recordPeakUsage = recordPeakUsage;
607 _recordPostGCUsage = recordPostGCUsage;
608 _recordAccumulatedGCTime = recordAccumulatedGCTime;
609 _recordGCEndTime = recordGCEndTime;
610 _countCollection = countCollection;
611 _cause = cause;
612
613 MemoryService::gc_begin(_fullGC, _recordGCBeginTime, _recordAccumulatedGCTime,
614 _recordPreGCUsage, _recordPeakUsage);
615 }
616
617 TraceMemoryManagerStats::~TraceMemoryManagerStats() {
618 MemoryService::gc_end(_fullGC, _recordPostGCUsage, _recordAccumulatedGCTime,
619 _recordGCEndTime, _countCollection, _cause);
620 }
621
|
498 mgr->gc_end(recordPostGCUsage, recordAccumulatedGCTime, recordGCEndTime,
499 countCollection, cause);
500 }
501
502 void MemoryService::oops_do(OopClosure* f) {
503 int i;
504
505 for (i = 0; i < _pools_list->length(); i++) {
506 MemoryPool* pool = _pools_list->at(i);
507 pool->oops_do(f);
508 }
509 for (i = 0; i < _managers_list->length(); i++) {
510 MemoryManager* mgr = _managers_list->at(i);
511 mgr->oops_do(f);
512 }
513 }
514
515 bool MemoryService::set_verbose(bool verbose) {
516 MutexLocker m(Management_lock);
517 // verbose will be set to the previous value
518 bool succeed = CommandLineFlags::boolAtPut((char*)"PrintGC", &verbose, Flag::MANAGEMENT);
519 assert(succeed, "Setting PrintGC flag fails");
520 ClassLoadingService::reset_trace_class_unloading();
521
522 return verbose;
523 }
524
525 Handle MemoryService::create_MemoryUsage_obj(MemoryUsage usage, TRAPS) {
526 Klass* k = Management::java_lang_management_MemoryUsage_klass(CHECK_NH);
527 instanceKlassHandle ik(THREAD, k);
528
529 instanceHandle obj = ik->allocate_instance_handle(CHECK_NH);
530
531 JavaValue result(T_VOID);
532 JavaCallArguments args(10);
533 args.push_oop(obj); // receiver
534 args.push_long(usage.init_size_as_jlong()); // Argument 1
535 args.push_long(usage.used_as_jlong()); // Argument 2
536 args.push_long(usage.committed_as_jlong()); // Argument 3
537 args.push_long(usage.max_size_as_jlong()); // Argument 4
538
601 bool recordGCEndTime,
602 bool countCollection) {
603 _fullGC = fullGC;
604 _recordGCBeginTime = recordGCBeginTime;
605 _recordPreGCUsage = recordPreGCUsage;
606 _recordPeakUsage = recordPeakUsage;
607 _recordPostGCUsage = recordPostGCUsage;
608 _recordAccumulatedGCTime = recordAccumulatedGCTime;
609 _recordGCEndTime = recordGCEndTime;
610 _countCollection = countCollection;
611 _cause = cause;
612
613 MemoryService::gc_begin(_fullGC, _recordGCBeginTime, _recordAccumulatedGCTime,
614 _recordPreGCUsage, _recordPeakUsage);
615 }
616
617 TraceMemoryManagerStats::~TraceMemoryManagerStats() {
618 MemoryService::gc_end(_fullGC, _recordPostGCUsage, _recordAccumulatedGCTime,
619 _recordGCEndTime, _countCollection, _cause);
620 }
|