< prev index next >
src/hotspot/share/gc/z/zRelocationSetSelector.cpp
Print this page
*** 101,110 ****
--- 101,111 ----
// a candidate relocation set and calculate the maximum space requirement for
// their live objects.
const size_t npages = _registered_pages.size();
size_t selected_from = 0;
size_t selected_to = 0;
+ size_t selected_from_size = 0;
size_t from_size = 0;
semi_sort();
for (size_t from = 1; from <= npages; from++) {
*** 125,134 ****
--- 126,136 ----
const size_t diff_to = to - selected_to;
const double diff_reclaimable = 100 - percent_of(diff_to, diff_from);
if (diff_reclaimable > ZFragmentationLimit) {
selected_from = from;
selected_to = to;
+ selected_from_size = from_size;
}
log_trace(gc, reloc)("Candidate Relocation Set (%s Pages): "
SIZE_FORMAT "->" SIZE_FORMAT ", %.1f%% relative defragmentation, %s",
_name, from, to, diff_reclaimable, (selected_from == from) ? "Selected" : "Rejected");
*** 136,146 ****
// Finalize selection
_nselected = selected_from;
// Update statistics
! _relocating = from_size;
for (size_t i = _nselected; i < npages; i++) {
ZPage* const page = _sorted_pages[i];
_fragmentation += page->size() - page->live_bytes();
}
--- 138,148 ----
// Finalize selection
_nselected = selected_from;
// Update statistics
! _relocating = selected_from_size;
for (size_t i = _nselected; i < npages; i++) {
ZPage* const page = _sorted_pages[i];
_fragmentation += page->size() - page->live_bytes();
}
< prev index next >