RFR: 8329203: Parallel: Investigate Mark-Compact for Full GC to decrease memory usage [v4]

Albert Mingkun Yang ayang at openjdk.org
Mon May 13 09:11:38 UTC 2024


> Refactor Parallel full-gc to use the same algorithm (mark-compact) as Serial and G1 full-GC. This removes the obj-end bitmap. When GC threads are few, the old implementation can be more efficient because it requires fewer heap iterations. The new full-GC implementation, on the other hand, is more scalable because it introduces more phases (`forward_to_new_addr` and `adjust_pointers`) that can partition work effectively.
> 
> The diff is rather large, so reading the new code directly from `invoke_no_policy` is probably easier.
> 
> Test: tier1-6; some improvement in Dacapo-h2, CacheStresser, but no difference in specjbb2015, specjvm2008.

Albert Mingkun Yang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:

 - Merge branch 'master' into pgc-full-gc
 - review
 - remove-comment
 - Merge branch 'master' into pgc-full-gc
 - review
 - Merge branch 'master' into pgc-full-gc
 - pgc-full-gc

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/19101/files
  - new: https://git.openjdk.org/jdk/pull/19101/files/8288ad3f..51c2b07a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=19101&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=19101&range=02-03

  Stats: 126 lines in 12 files changed: 70 ins; 32 del; 24 mod
  Patch: https://git.openjdk.org/jdk/pull/19101.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19101/head:pull/19101

PR: https://git.openjdk.org/jdk/pull/19101


More information about the hotspot-gc-dev mailing list