-
Bug
-
Resolution: Fixed
-
P4
-
8u60, 9
-
b81
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8141892 | emb-9 | Thomas Schatzl | P4 | Resolved | Fixed | team |
Noticed by kbarrett:
In line 431 of heapRegionManager.cpp, HeapRegionManager::shrink_by() the decrement while iterating over the heap region table is suboptimal, e.g. the "cur -= num_last_found;" statement.
If the recent scan had to skip over a block of !available || !empty regions to find the regions that were just removed, that skipped block isn't accounted for by that decrement. I think a better iteration step would be "cur = idx_last_found;"
In line 431 of heapRegionManager.cpp, HeapRegionManager::shrink_by() the decrement while iterating over the heap region table is suboptimal, e.g. the "cur -= num_last_found;" statement.
If the recent scan had to skip over a block of !available || !empty regions to find the regions that were just removed, that skipped block isn't accounted for by that decrement. I think a better iteration step would be "cur = idx_last_found;"
- backported by
-
JDK-8141892 HeapRegionManager::shrink_by() iterates suboptimally across regions
-
- Resolved
-
- relates to
-
JDK-8038423 G1: Decommit memory within the heap
-
- Resolved
-