-
Enhancement
-
Resolution: Fixed
-
P4
-
17
-
b19
For open archive regions after marking we check whether anything is still live in there using a bitmap scan.
However inJDK-8263495 we added code to gather per-region liveness during full gc marking, so that bitmap scan can be replaced by a much faster lookup of the current liveness in that region.
to be exact, in:
bool G1FullGCPrepareTask::G1CalculatePointersClosure::do_heap_region(HeapRegion* hr) {
} else if (hr->is_open_archive()) {
bool is_empty = _bitmap->get_next_marked_addr(hr->bottom(), hr->top()) >= hr->top();
if (is_empty) {
free_open_archive_region(hr);
}
the is_empty assignment can be rewritten as proposed.
However in
to be exact, in:
bool G1FullGCPrepareTask::G1CalculatePointersClosure::do_heap_region(HeapRegion* hr) {
} else if (hr->is_open_archive()) {
bool is_empty = _bitmap->get_next_marked_addr(hr->bottom(), hr->top()) >= hr->top();
if (is_empty) {
free_open_archive_region(hr);
}
the is_empty assignment can be rewritten as proposed.
- relates to
-
JDK-8265330 G1: Fix comment in G1FullGCPrepareTask::G1CalculatePointersClosure
-
- Resolved
-
-
JDK-8263495 Gather liveness info in the mark phase of G1 full gc
-
- Resolved
-