hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
changeset 23455 e541bff96524
parent 23454 13a3b426f64d
child 23456 9a9485a32cb3
equal deleted inserted replaced
23454:13a3b426f64d 23455:e541bff96524
  2358   }
  2358   }
  2359   size_t result() { return _used; }
  2359   size_t result() { return _used; }
  2360 };
  2360 };
  2361 
  2361 
  2362 size_t G1CollectedHeap::recalculate_used() const {
  2362 size_t G1CollectedHeap::recalculate_used() const {
       
  2363   double recalculate_used_start = os::elapsedTime();
       
  2364 
  2363   SumUsedClosure blk;
  2365   SumUsedClosure blk;
  2364   heap_region_iterate(&blk);
  2366   heap_region_iterate(&blk);
       
  2367 
       
  2368   g1_policy()->phase_times()->record_evac_fail_recalc_used_time((os::elapsedTime() - recalculate_used_start) * 1000.0);
  2365   return blk.result();
  2369   return blk.result();
  2366 }
  2370 }
  2367 
  2371 
  2368 bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
  2372 bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
  2369   switch (cause) {
  2373   switch (cause) {
  4374 }
  4378 }
  4375 
  4379 
  4376 void G1CollectedHeap::remove_self_forwarding_pointers() {
  4380 void G1CollectedHeap::remove_self_forwarding_pointers() {
  4377   assert(check_cset_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity");
  4381   assert(check_cset_heap_region_claim_values(HeapRegion::InitialClaimValue), "sanity");
  4378 
  4382 
       
  4383   double remove_self_forwards_start = os::elapsedTime();
       
  4384 
  4379   G1ParRemoveSelfForwardPtrsTask rsfp_task(this);
  4385   G1ParRemoveSelfForwardPtrsTask rsfp_task(this);
  4380 
  4386 
  4381   if (G1CollectedHeap::use_parallel_gc_threads()) {
  4387   if (G1CollectedHeap::use_parallel_gc_threads()) {
  4382     set_par_threads();
  4388     set_par_threads();
  4383     workers()->run_task(&rsfp_task);
  4389     workers()->run_task(&rsfp_task);
  4401     markOop m = _preserved_marks_of_objs.pop();
  4407     markOop m = _preserved_marks_of_objs.pop();
  4402     obj->set_mark(m);
  4408     obj->set_mark(m);
  4403   }
  4409   }
  4404   _objs_with_preserved_marks.clear(true);
  4410   _objs_with_preserved_marks.clear(true);
  4405   _preserved_marks_of_objs.clear(true);
  4411   _preserved_marks_of_objs.clear(true);
       
  4412 
       
  4413   g1_policy()->phase_times()->record_evac_fail_remove_self_forwards((os::elapsedTime() - remove_self_forwards_start) * 1000.0);
  4406 }
  4414 }
  4407 
  4415 
  4408 void G1CollectedHeap::push_on_evac_failure_scan_stack(oop obj) {
  4416 void G1CollectedHeap::push_on_evac_failure_scan_stack(oop obj) {
  4409   _evac_failure_scan_stack->push(obj);
  4417   _evac_failure_scan_stack->push(obj);
  4410 }
  4418 }