RFR: Allow regulator to schedule global cycles for the purpose of class unloading
William Kemper
wkemper at openjdk.java.net
Thu Apr 28 21:00:40 UTC 2022
Generational mode only supports class unloading during _global_ cycles. Global cycles can only be triggered in generational mode by an explicit `System.gc` call. With this change, the regulator is able to trigger periodic global cycles based on the value of `ShenandoahUnloadClassesFrequency`. This is currently disabled by default for the generational mode because we've not found a workload that shows a clear benefit, however, we expect it will be needed for longer running workloads and we want the ability to turn this on when necessary.
-------------
Commit messages:
- Disable periodic concurrent class unloading cycles for generation mode
- Dial back class unloading frequency to every 50 cycles
- Bypass heuristic when we need to unload classes
- Allow regulator to schedule periodic global collects
Changes: https://git.openjdk.java.net/shenandoah/pull/138/files
Webrev: https://webrevs.openjdk.java.net/?repo=shenandoah&pr=138&range=00
Stats: 21 lines in 3 files changed: 15 ins; 1 del; 5 mod
Patch: https://git.openjdk.java.net/shenandoah/pull/138.diff
Fetch: git fetch https://git.openjdk.java.net/shenandoah pull/138/head:pull/138
PR: https://git.openjdk.java.net/shenandoah/pull/138
More information about the shenandoah-dev
mailing list