equal
deleted
inserted
replaced
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 } |